data.zmod.quotientMathlib.Data.ZMod.Quotient

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -47,8 +47,8 @@ namespace Int
 #print Int.quotientZMultiplesNatEquivZMod /-
 /-- `ℤ` modulo multiples of `n : ℕ` is `zmod n`. -/
 def quotientZMultiplesNatEquivZMod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
-  (quotientAddEquivOfEq (ZMod.ker_int_castAddHom _)).symm.trans <|
-    quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) coe int_cast_zmod_cast
+  (quotientAddEquivOfEq (ZMod.ker_intCastAddHom _)).symm.trans <|
+    quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) coe intCast_zmod_cast
 #align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZMultiplesNatEquivZMod
 -/
 
@@ -62,9 +62,9 @@ def quotientZMultiplesEquivZMod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃
 #print Int.quotientSpanNatEquivZMod /-
 /-- `ℤ` modulo the ideal generated by `n : ℕ` is `zmod n`. -/
 def quotientSpanNatEquivZMod : ℤ ⧸ Ideal.span {↑n} ≃+* ZMod n :=
-  (Ideal.quotEquivOfEq (ZMod.ker_int_castRingHom _)).symm.trans <|
+  (Ideal.quotEquivOfEq (ZMod.ker_intCastRingHom _)).symm.trans <|
     RingHom.quotientKerEquivOfRightInverse <|
-      show Function.RightInverse coe (Int.castRingHom (ZMod n)) from int_cast_zmod_cast
+      show Function.RightInverse coe (Int.castRingHom (ZMod n)) from intCast_zmod_cast
 #align int.quotient_span_nat_equiv_zmod Int.quotientSpanNatEquivZMod
 -/
 
@@ -170,7 +170,7 @@ theorem orbitZPowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)
 theorem orbitZPowersEquiv_symm_apply' (k : ℤ) :
     (orbitZPowersEquiv a b).symm k = (⟨a, mem_zpowers a⟩ : zpowers a) ^ k • ⟨b, mem_orbit_self b⟩ :=
   by
-  rw [orbit_zpowers_equiv_symm_apply, ZMod.coe_int_cast]
+  rw [orbit_zpowers_equiv_symm_apply, ZMod.coe_intCast]
   exact Subtype.ext (zpow_smul_mod_minimal_period _ _ k)
 #align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZPowersEquiv_symm_apply'
 -/
@@ -181,7 +181,7 @@ theorem AddAction.orbitZMultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α
     (AddAction.orbitZMultiplesEquiv a b).symm k =
       k • (⟨a, mem_zmultiples a⟩ : zmultiples a) +ᵥ ⟨b, AddAction.mem_orbit_self b⟩ :=
   by
-  rw [AddAction.orbitZMultiplesEquiv_symm_apply, ZMod.coe_int_cast]
+  rw [AddAction.orbitZMultiplesEquiv_symm_apply, ZMod.coe_intCast]
   exact Subtype.ext (zsmul_vadd_mod_minimal_period _ _ k)
 #align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZMultiplesEquiv_symm_apply'
 -/
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
 -/
-import Data.Zmod.Basic
+import Data.ZMod.Basic
 import GroupTheory.GroupAction.Quotient
 import RingTheory.Int.Basic
 import RingTheory.Ideal.QuotientOperations
@@ -90,7 +90,7 @@ noncomputable def zmultiplesQuotientStabilizerEquiv :
   (ofBijective
           (map _ (stabilizer (zmultiples a) b) (zmultiplesHom (zmultiples a) ⟨a, mem_zmultiples a⟩)
             (by
-              rw [zmultiples_le, mem_comap, mem_stabilizer_iff, zmultiplesHom_apply, coe_nat_zsmul,
+              rw [zmultiples_le, mem_comap, mem_stabilizer_iff, zmultiplesHom_apply, natCast_zsmul,
                 ← vadd_iterate]
               exact is_periodic_pt_minimal_period ((· +ᵥ ·) a) b))
           ⟨by
Diff
@@ -223,7 +223,7 @@ variable {α : Type _} [Group α] (a : α)
 theorem Nat.card_zpowers : orderOf a = Nat.card (zpowers a) :=
   by
   have := Nat.card_congr (MulAction.orbitZPowersEquiv a (1 : α))
-  rwa [Nat.card_zmod, orbit_subgroup_one_eq_self, eq_comm] at this 
+  rwa [Nat.card_zmod, orbit_subgroup_one_eq_self, eq_comm] at this
 #align order_eq_card_zpowers' Nat.card_zpowersₓ
 #align add_order_eq_card_zmultiples' Nat.card_zmultiplesₓ
 
@@ -233,7 +233,7 @@ variable {a}
 @[to_additive IsOfFinAddOrder.finite_zmultiples]
 theorem IsOfFinOrder.finite_zpowers (h : IsOfFinOrder a) : Finite <| zpowers a :=
   by
-  rw [← orderOf_pos_iff, Nat.card_zpowers] at h 
+  rw [← orderOf_pos_iff, Nat.card_zpowers] at h
   exact Nat.finite_of_card_ne_zero h.ne.symm
 #align is_of_fin_order.finite_zpowers IsOfFinOrder.finite_zpowers
 #align is_of_fin_add_order.finite_zmultiples IsOfFinAddOrder.finite_zmultiples
Diff
@@ -163,7 +163,7 @@ theorem orbitZPowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)
       (⟨a, mem_zpowers a⟩ : zpowers a) ^ (k : ℤ) • ⟨b, mem_orbit_self b⟩ :=
   rfl
 #align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZPowersEquiv_symm_apply
-#align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbit_zmultiples_equiv_symm_apply
+#align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbitZMultiplesEquiv_symm_apply
 -/
 
 #print MulAction.orbitZPowersEquiv_symm_apply' /-
@@ -181,7 +181,7 @@ theorem AddAction.orbitZMultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α
     (AddAction.orbitZMultiplesEquiv a b).symm k =
       k • (⟨a, mem_zmultiples a⟩ : zmultiples a) +ᵥ ⟨b, AddAction.mem_orbit_self b⟩ :=
   by
-  rw [AddAction.orbit_zmultiples_equiv_symm_apply, ZMod.coe_int_cast]
+  rw [AddAction.orbitZMultiplesEquiv_symm_apply, ZMod.coe_int_cast]
   exact Subtype.ext (zsmul_vadd_mod_minimal_period _ _ k)
 #align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZMultiplesEquiv_symm_apply'
 -/
Diff
@@ -44,19 +44,19 @@ variable (n : ℕ) {A R : Type _} [AddGroup A] [Ring R]
 
 namespace Int
 
-#print Int.quotientZmultiplesNatEquivZMod /-
+#print Int.quotientZMultiplesNatEquivZMod /-
 /-- `ℤ` modulo multiples of `n : ℕ` is `zmod n`. -/
-def quotientZmultiplesNatEquivZMod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
+def quotientZMultiplesNatEquivZMod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
   (quotientAddEquivOfEq (ZMod.ker_int_castAddHom _)).symm.trans <|
     quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) coe int_cast_zmod_cast
-#align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZmultiplesNatEquivZMod
+#align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZMultiplesNatEquivZMod
 -/
 
-#print Int.quotientZmultiplesEquivZMod /-
+#print Int.quotientZMultiplesEquivZMod /-
 /-- `ℤ` modulo multiples of `a : ℤ` is `zmod a.nat_abs`. -/
-def quotientZmultiplesEquivZMod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃+ ZMod a.natAbs :=
-  (quotientAddEquivOfEq (zmultiples_natAbs a)).symm.trans (quotientZmultiplesNatEquivZMod a.natAbs)
-#align int.quotient_zmultiples_equiv_zmod Int.quotientZmultiplesEquivZMod
+def quotientZMultiplesEquivZMod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃+ ZMod a.natAbs :=
+  (quotientAddEquivOfEq (zmultiples_natAbs a)).symm.trans (quotientZMultiplesNatEquivZMod a.natAbs)
+#align int.quotient_zmultiples_equiv_zmod Int.quotientZMultiplesEquivZMod
 -/
 
 #print Int.quotientSpanNatEquivZMod /-
@@ -100,7 +100,7 @@ noncomputable def zmultiplesQuotientStabilizerEquiv :
               zsmul_vadd_eq_iff_minimal_period_dvd]
             exact (eq_zero_iff _).mp hn, fun q =>
             induction_on' q fun ⟨_, n, rfl⟩ => ⟨n, rfl⟩⟩).symm.trans
-    (Int.quotientZmultiplesNatEquivZMod (minimalPeriod ((· +ᵥ ·) a) b))
+    (Int.quotientZMultiplesNatEquivZMod (minimalPeriod ((· +ᵥ ·) a) b))
 #align add_action.zmultiples_quotient_stabilizer_equiv AddAction.zmultiplesQuotientStabilizerEquiv
 -/
 
@@ -138,52 +138,52 @@ theorem zpowersQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod ((·
 #align mul_action.zpowers_quotient_stabilizer_equiv_symm_apply MulAction.zpowersQuotientStabilizerEquiv_symm_apply
 -/
 
-#print MulAction.orbitZpowersEquiv /-
+#print MulAction.orbitZPowersEquiv /-
 /-- The orbit `(a ^ ℤ) • b` is a cycle of order `minimal_period ((•) a) b`. -/
-noncomputable def orbitZpowersEquiv : orbit (zpowers a) b ≃ ZMod (minimalPeriod ((· • ·) a) b) :=
+noncomputable def orbitZPowersEquiv : orbit (zpowers a) b ≃ ZMod (minimalPeriod ((· • ·) a) b) :=
   (orbitEquivQuotientStabilizer _ b).trans (zpowersQuotientStabilizerEquiv a b).toEquiv
-#align mul_action.orbit_zpowers_equiv MulAction.orbitZpowersEquiv
+#align mul_action.orbit_zpowers_equiv MulAction.orbitZPowersEquiv
 -/
 
-#print AddAction.orbitZmultiplesEquiv /-
+#print AddAction.orbitZMultiplesEquiv /-
 /-- The orbit `(ℤ • a) +ᵥ b` is a cycle of order `minimal_period ((+ᵥ) a) b`. -/
-noncomputable def AddAction.orbitZmultiplesEquiv {α β : Type _} [AddGroup α] (a : α) [AddAction α β]
+noncomputable def AddAction.orbitZMultiplesEquiv {α β : Type _} [AddGroup α] (a : α) [AddAction α β]
     (b : β) : AddAction.orbit (zmultiples a) b ≃ ZMod (minimalPeriod ((· +ᵥ ·) a) b) :=
   (AddAction.orbitEquivQuotientStabilizer (zmultiples a) b).trans
     (zmultiplesQuotientStabilizerEquiv a b).toEquiv
-#align add_action.orbit_zmultiples_equiv AddAction.orbitZmultiplesEquiv
+#align add_action.orbit_zmultiples_equiv AddAction.orbitZMultiplesEquiv
 -/
 
 attribute [to_additive orbit_zmultiples_equiv] orbit_zpowers_equiv
 
-#print MulAction.orbitZpowersEquiv_symm_apply /-
+#print MulAction.orbitZPowersEquiv_symm_apply /-
 @[to_additive orbit_zmultiples_equiv_symm_apply]
-theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)) :
-    (orbitZpowersEquiv a b).symm k =
+theorem orbitZPowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)) :
+    (orbitZPowersEquiv a b).symm k =
       (⟨a, mem_zpowers a⟩ : zpowers a) ^ (k : ℤ) • ⟨b, mem_orbit_self b⟩ :=
   rfl
-#align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZpowersEquiv_symm_apply
+#align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZPowersEquiv_symm_apply
 #align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbit_zmultiples_equiv_symm_apply
 -/
 
-#print MulAction.orbitZpowersEquiv_symm_apply' /-
-theorem orbitZpowersEquiv_symm_apply' (k : ℤ) :
-    (orbitZpowersEquiv a b).symm k = (⟨a, mem_zpowers a⟩ : zpowers a) ^ k • ⟨b, mem_orbit_self b⟩ :=
+#print MulAction.orbitZPowersEquiv_symm_apply' /-
+theorem orbitZPowersEquiv_symm_apply' (k : ℤ) :
+    (orbitZPowersEquiv a b).symm k = (⟨a, mem_zpowers a⟩ : zpowers a) ^ k • ⟨b, mem_orbit_self b⟩ :=
   by
   rw [orbit_zpowers_equiv_symm_apply, ZMod.coe_int_cast]
   exact Subtype.ext (zpow_smul_mod_minimal_period _ _ k)
-#align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZpowersEquiv_symm_apply'
+#align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZPowersEquiv_symm_apply'
 -/
 
-#print AddAction.orbitZmultiplesEquiv_symm_apply' /-
-theorem AddAction.orbitZmultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α] (a : α)
+#print AddAction.orbitZMultiplesEquiv_symm_apply' /-
+theorem AddAction.orbitZMultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α] (a : α)
     [AddAction α β] (b : β) (k : ℤ) :
-    (AddAction.orbitZmultiplesEquiv a b).symm k =
+    (AddAction.orbitZMultiplesEquiv a b).symm k =
       k • (⟨a, mem_zmultiples a⟩ : zmultiples a) +ᵥ ⟨b, AddAction.mem_orbit_self b⟩ :=
   by
   rw [AddAction.orbit_zmultiples_equiv_symm_apply, ZMod.coe_int_cast]
   exact Subtype.ext (zsmul_vadd_mod_minimal_period _ _ k)
-#align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZmultiplesEquiv_symm_apply'
+#align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZMultiplesEquiv_symm_apply'
 -/
 
 attribute [to_additive orbit_zmultiples_equiv_symm_apply'] orbit_zpowers_equiv_symm_apply'
@@ -222,7 +222,7 @@ variable {α : Type _} [Group α] (a : α)
 @[to_additive Nat.card_zmultiples "See also `add_order_eq_card_zmultiples`."]
 theorem Nat.card_zpowers : orderOf a = Nat.card (zpowers a) :=
   by
-  have := Nat.card_congr (MulAction.orbitZpowersEquiv a (1 : α))
+  have := Nat.card_congr (MulAction.orbitZPowersEquiv a (1 : α))
   rwa [Nat.card_zmod, orbit_subgroup_one_eq_self, eq_comm] at this 
 #align order_eq_card_zpowers' Nat.card_zpowersₓ
 #align add_order_eq_card_zmultiples' Nat.card_zmultiplesₓ
Diff
@@ -218,16 +218,14 @@ open Subgroup
 
 variable {α : Type _} [Group α] (a : α)
 
-#print order_eq_card_zpowers' /-
 /-- See also `order_eq_card_zpowers`. -/
-@[to_additive add_order_eq_card_zmultiples' "See also `add_order_eq_card_zmultiples`."]
-theorem order_eq_card_zpowers' : orderOf a = Nat.card (zpowers a) :=
+@[to_additive Nat.card_zmultiples "See also `add_order_eq_card_zmultiples`."]
+theorem Nat.card_zpowers : orderOf a = Nat.card (zpowers a) :=
   by
   have := Nat.card_congr (MulAction.orbitZpowersEquiv a (1 : α))
   rwa [Nat.card_zmod, orbit_subgroup_one_eq_self, eq_comm] at this 
-#align order_eq_card_zpowers' order_eq_card_zpowers'
-#align add_order_eq_card_zmultiples' add_order_eq_card_zmultiples'
--/
+#align order_eq_card_zpowers' Nat.card_zpowersₓ
+#align add_order_eq_card_zmultiples' Nat.card_zmultiplesₓ
 
 variable {a}
 
@@ -235,7 +233,7 @@ variable {a}
 @[to_additive IsOfFinAddOrder.finite_zmultiples]
 theorem IsOfFinOrder.finite_zpowers (h : IsOfFinOrder a) : Finite <| zpowers a :=
   by
-  rw [← orderOf_pos_iff, order_eq_card_zpowers'] at h 
+  rw [← orderOf_pos_iff, Nat.card_zpowers] at h 
   exact Nat.finite_of_card_ne_zero h.ne.symm
 #align is_of_fin_order.finite_zpowers IsOfFinOrder.finite_zpowers
 #align is_of_fin_add_order.finite_zmultiples IsOfFinAddOrder.finite_zmultiples
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
 -/
-import Mathbin.Data.Zmod.Basic
-import Mathbin.GroupTheory.GroupAction.Quotient
-import Mathbin.RingTheory.Int.Basic
-import Mathbin.RingTheory.Ideal.QuotientOperations
+import Data.Zmod.Basic
+import GroupTheory.GroupAction.Quotient
+import RingTheory.Int.Basic
+import RingTheory.Ideal.QuotientOperations
 
 #align_import data.zmod.quotient from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
 
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
-
-! This file was ported from Lean 3 source module data.zmod.quotient
-! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Zmod.Basic
 import Mathbin.GroupTheory.GroupAction.Quotient
 import Mathbin.RingTheory.Int.Basic
 import Mathbin.RingTheory.Ideal.QuotientOperations
 
+#align_import data.zmod.quotient from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
+
 /-!
 # `zmod n` and quotient groups / rings
 
Diff
@@ -47,28 +47,36 @@ variable (n : ℕ) {A R : Type _} [AddGroup A] [Ring R]
 
 namespace Int
 
+#print Int.quotientZmultiplesNatEquivZMod /-
 /-- `ℤ` modulo multiples of `n : ℕ` is `zmod n`. -/
 def quotientZmultiplesNatEquivZMod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
   (quotientAddEquivOfEq (ZMod.ker_int_castAddHom _)).symm.trans <|
     quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) coe int_cast_zmod_cast
 #align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZmultiplesNatEquivZMod
+-/
 
+#print Int.quotientZmultiplesEquivZMod /-
 /-- `ℤ` modulo multiples of `a : ℤ` is `zmod a.nat_abs`. -/
 def quotientZmultiplesEquivZMod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃+ ZMod a.natAbs :=
   (quotientAddEquivOfEq (zmultiples_natAbs a)).symm.trans (quotientZmultiplesNatEquivZMod a.natAbs)
 #align int.quotient_zmultiples_equiv_zmod Int.quotientZmultiplesEquivZMod
+-/
 
+#print Int.quotientSpanNatEquivZMod /-
 /-- `ℤ` modulo the ideal generated by `n : ℕ` is `zmod n`. -/
 def quotientSpanNatEquivZMod : ℤ ⧸ Ideal.span {↑n} ≃+* ZMod n :=
   (Ideal.quotEquivOfEq (ZMod.ker_int_castRingHom _)).symm.trans <|
     RingHom.quotientKerEquivOfRightInverse <|
       show Function.RightInverse coe (Int.castRingHom (ZMod n)) from int_cast_zmod_cast
 #align int.quotient_span_nat_equiv_zmod Int.quotientSpanNatEquivZMod
+-/
 
+#print Int.quotientSpanEquivZMod /-
 /-- `ℤ` modulo the ideal generated by `a : ℤ` is `zmod a.nat_abs`. -/
 def quotientSpanEquivZMod (a : ℤ) : ℤ ⧸ Ideal.span ({a} : Set ℤ) ≃+* ZMod a.natAbs :=
   (Ideal.quotEquivOfEq (span_natAbs a)).symm.trans (quotientSpanNatEquivZMod a.natAbs)
 #align int.quotient_span_equiv_zmod Int.quotientSpanEquivZMod
+-/
 
 end Int
 
@@ -133,20 +141,25 @@ theorem zpowersQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod ((·
 #align mul_action.zpowers_quotient_stabilizer_equiv_symm_apply MulAction.zpowersQuotientStabilizerEquiv_symm_apply
 -/
 
+#print MulAction.orbitZpowersEquiv /-
 /-- The orbit `(a ^ ℤ) • b` is a cycle of order `minimal_period ((•) a) b`. -/
 noncomputable def orbitZpowersEquiv : orbit (zpowers a) b ≃ ZMod (minimalPeriod ((· • ·) a) b) :=
   (orbitEquivQuotientStabilizer _ b).trans (zpowersQuotientStabilizerEquiv a b).toEquiv
 #align mul_action.orbit_zpowers_equiv MulAction.orbitZpowersEquiv
+-/
 
+#print AddAction.orbitZmultiplesEquiv /-
 /-- The orbit `(ℤ • a) +ᵥ b` is a cycle of order `minimal_period ((+ᵥ) a) b`. -/
 noncomputable def AddAction.orbitZmultiplesEquiv {α β : Type _} [AddGroup α] (a : α) [AddAction α β]
     (b : β) : AddAction.orbit (zmultiples a) b ≃ ZMod (minimalPeriod ((· +ᵥ ·) a) b) :=
   (AddAction.orbitEquivQuotientStabilizer (zmultiples a) b).trans
     (zmultiplesQuotientStabilizerEquiv a b).toEquiv
 #align add_action.orbit_zmultiples_equiv AddAction.orbitZmultiplesEquiv
+-/
 
 attribute [to_additive orbit_zmultiples_equiv] orbit_zpowers_equiv
 
+#print MulAction.orbitZpowersEquiv_symm_apply /-
 @[to_additive orbit_zmultiples_equiv_symm_apply]
 theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)) :
     (orbitZpowersEquiv a b).symm k =
@@ -154,14 +167,18 @@ theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)
   rfl
 #align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZpowersEquiv_symm_apply
 #align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbit_zmultiples_equiv_symm_apply
+-/
 
+#print MulAction.orbitZpowersEquiv_symm_apply' /-
 theorem orbitZpowersEquiv_symm_apply' (k : ℤ) :
     (orbitZpowersEquiv a b).symm k = (⟨a, mem_zpowers a⟩ : zpowers a) ^ k • ⟨b, mem_orbit_self b⟩ :=
   by
   rw [orbit_zpowers_equiv_symm_apply, ZMod.coe_int_cast]
   exact Subtype.ext (zpow_smul_mod_minimal_period _ _ k)
 #align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZpowersEquiv_symm_apply'
+-/
 
+#print AddAction.orbitZmultiplesEquiv_symm_apply' /-
 theorem AddAction.orbitZmultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α] (a : α)
     [AddAction α β] (b : β) (k : ℤ) :
     (AddAction.orbitZmultiplesEquiv a b).symm k =
@@ -170,16 +187,20 @@ theorem AddAction.orbitZmultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α
   rw [AddAction.orbit_zmultiples_equiv_symm_apply, ZMod.coe_int_cast]
   exact Subtype.ext (zsmul_vadd_mod_minimal_period _ _ k)
 #align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZmultiplesEquiv_symm_apply'
+-/
 
 attribute [to_additive orbit_zmultiples_equiv_symm_apply'] orbit_zpowers_equiv_symm_apply'
 
+#print MulAction.minimalPeriod_eq_card /-
 @[to_additive]
 theorem minimalPeriod_eq_card [Fintype (orbit (zpowers a) b)] :
     minimalPeriod ((· • ·) a) b = Fintype.card (orbit (zpowers a) b) := by
   rw [← Fintype.ofEquiv_card (orbit_zpowers_equiv a b), ZMod.card]
 #align mul_action.minimal_period_eq_card MulAction.minimalPeriod_eq_card
 #align add_action.minimal_period_eq_card AddAction.minimalPeriod_eq_card
+-/
 
+#print MulAction.minimalPeriod_pos /-
 @[to_additive]
 instance minimalPeriod_pos [Finite <| orbit (zpowers a) b] :
     NeZero <| minimalPeriod ((· • ·) a) b :=
@@ -190,6 +211,7 @@ instance minimalPeriod_pos [Finite <| orbit (zpowers a) b] :
     exact Fintype.card_ne_zero⟩
 #align mul_action.minimal_period_pos MulAction.minimalPeriod_pos
 #align add_action.minimal_period_pos AddAction.minimalPeriod_pos
+-/
 
 end MulAction
 
@@ -199,6 +221,7 @@ open Subgroup
 
 variable {α : Type _} [Group α] (a : α)
 
+#print order_eq_card_zpowers' /-
 /-- See also `order_eq_card_zpowers`. -/
 @[to_additive add_order_eq_card_zmultiples' "See also `add_order_eq_card_zmultiples`."]
 theorem order_eq_card_zpowers' : orderOf a = Nat.card (zpowers a) :=
@@ -207,9 +230,11 @@ theorem order_eq_card_zpowers' : orderOf a = Nat.card (zpowers a) :=
   rwa [Nat.card_zmod, orbit_subgroup_one_eq_self, eq_comm] at this 
 #align order_eq_card_zpowers' order_eq_card_zpowers'
 #align add_order_eq_card_zmultiples' add_order_eq_card_zmultiples'
+-/
 
 variable {a}
 
+#print IsOfFinOrder.finite_zpowers /-
 @[to_additive IsOfFinAddOrder.finite_zmultiples]
 theorem IsOfFinOrder.finite_zpowers (h : IsOfFinOrder a) : Finite <| zpowers a :=
   by
@@ -217,6 +242,7 @@ theorem IsOfFinOrder.finite_zpowers (h : IsOfFinOrder a) : Finite <| zpowers a :
   exact Nat.finite_of_card_ne_zero h.ne.symm
 #align is_of_fin_order.finite_zpowers IsOfFinOrder.finite_zpowers
 #align is_of_fin_add_order.finite_zmultiples IsOfFinAddOrder.finite_zmultiples
+-/
 
 end Group
 
Diff
@@ -204,7 +204,7 @@ variable {α : Type _} [Group α] (a : α)
 theorem order_eq_card_zpowers' : orderOf a = Nat.card (zpowers a) :=
   by
   have := Nat.card_congr (MulAction.orbitZpowersEquiv a (1 : α))
-  rwa [Nat.card_zmod, orbit_subgroup_one_eq_self, eq_comm] at this
+  rwa [Nat.card_zmod, orbit_subgroup_one_eq_self, eq_comm] at this 
 #align order_eq_card_zpowers' order_eq_card_zpowers'
 #align add_order_eq_card_zmultiples' add_order_eq_card_zmultiples'
 
@@ -213,7 +213,7 @@ variable {a}
 @[to_additive IsOfFinAddOrder.finite_zmultiples]
 theorem IsOfFinOrder.finite_zpowers (h : IsOfFinOrder a) : Finite <| zpowers a :=
   by
-  rw [← orderOf_pos_iff, order_eq_card_zpowers'] at h
+  rw [← orderOf_pos_iff, order_eq_card_zpowers'] at h 
   exact Nat.finite_of_card_ne_zero h.ne.symm
 #align is_of_fin_order.finite_zpowers IsOfFinOrder.finite_zpowers
 #align is_of_fin_add_order.finite_zmultiples IsOfFinAddOrder.finite_zmultiples
Diff
@@ -47,35 +47,17 @@ variable (n : ℕ) {A R : Type _} [AddGroup A] [Ring R]
 
 namespace Int
 
-/- warning: int.quotient_zmultiples_nat_equiv_zmod -> Int.quotientZmultiplesNatEquivZMod is a dubious translation:
-lean 3 declaration is
-  forall (n : Nat), AddEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))) (ZMod n) (AddZeroClass.toHasAdd.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))) (AddMonoid.toAddZeroClass.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))) (SubNegMonoid.toAddMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))) (AddGroup.toSubNegMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))) (QuotientAddGroup.Quotient.addGroup.{0} Int Int.addGroup (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)) (Int.quotientZmultiplesNatEquivZMod._proof_1 n)))))) (Distrib.toHasAdd.{0} (ZMod n) (Ring.toDistrib.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n))))
-but is expected to have type
-  forall (n : Nat), AddEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n))) (ZMod n) (AddZeroClass.toAdd.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n))) (AddMonoid.toAddZeroClass.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n))) (SubNegMonoid.toAddMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n))) (AddGroup.toSubNegMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n))) (QuotientAddGroup.Quotient.addGroup.{0} Int Int.instAddGroupInt (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n)) (AddSubgroup.normal_of_comm.{0} Int Int.instAddCommGroupInt (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n)))))))) (Distrib.toAdd.{0} (ZMod n) (NonUnitalNonAssocSemiring.toDistrib.{0} (ZMod n) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (ZMod n) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod n) (Ring.toNonAssocRing.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n)))))))
-Case conversion may be inaccurate. Consider using '#align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZmultiplesNatEquivZModₓ'. -/
 /-- `ℤ` modulo multiples of `n : ℕ` is `zmod n`. -/
 def quotientZmultiplesNatEquivZMod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
   (quotientAddEquivOfEq (ZMod.ker_int_castAddHom _)).symm.trans <|
     quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) coe int_cast_zmod_cast
 #align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZmultiplesNatEquivZMod
 
-/- warning: int.quotient_zmultiples_equiv_zmod -> Int.quotientZmultiplesEquivZMod is a dubious translation:
-lean 3 declaration is
-  forall (a : Int), AddEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup a)) (ZMod (Int.natAbs a)) (AddZeroClass.toHasAdd.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup a)) (AddMonoid.toAddZeroClass.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup a)) (SubNegMonoid.toAddMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup a)) (AddGroup.toSubNegMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup a)) (QuotientAddGroup.Quotient.addGroup.{0} Int Int.addGroup (AddSubgroup.zmultiples.{0} Int Int.addGroup a) (Int.quotientZmultiplesEquivZMod._proof_1 a)))))) (Distrib.toHasAdd.{0} (ZMod (Int.natAbs a)) (Ring.toDistrib.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a)))))
-but is expected to have type
-  forall (a : Int), AddEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a)) (ZMod (Int.natAbs a)) (AddZeroClass.toAdd.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a)) (AddMonoid.toAddZeroClass.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a)) (SubNegMonoid.toAddMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a)) (AddGroup.toSubNegMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a)) (QuotientAddGroup.Quotient.addGroup.{0} Int Int.instAddGroupInt (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a) (AddSubgroup.normal_of_comm.{0} Int Int.instAddCommGroupInt (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a))))))) (Distrib.toAdd.{0} (ZMod (Int.natAbs a)) (NonUnitalNonAssocSemiring.toDistrib.{0} (ZMod (Int.natAbs a)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (ZMod (Int.natAbs a)) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod (Int.natAbs a)) (Ring.toNonAssocRing.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a))))))))
-Case conversion may be inaccurate. Consider using '#align int.quotient_zmultiples_equiv_zmod Int.quotientZmultiplesEquivZModₓ'. -/
 /-- `ℤ` modulo multiples of `a : ℤ` is `zmod a.nat_abs`. -/
 def quotientZmultiplesEquivZMod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃+ ZMod a.natAbs :=
   (quotientAddEquivOfEq (zmultiples_natAbs a)).symm.trans (quotientZmultiplesNatEquivZMod a.natAbs)
 #align int.quotient_zmultiples_equiv_zmod Int.quotientZmultiplesEquivZMod
 
-/- warning: int.quotient_span_nat_equiv_zmod -> Int.quotientSpanNatEquivZMod is a dubious translation:
-lean 3 declaration is
-  forall (n : Nat), RingEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing)) (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (ZMod n) (Distrib.toHasMul.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (Ring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (Ideal.Quotient.commRing.{0} Int Int.commRing (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))))))) (Distrib.toHasAdd.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (Ring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (Ideal.Quotient.commRing.{0} Int Int.commRing (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))))))) (Distrib.toHasMul.{0} (ZMod n) (Ring.toDistrib.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n)))) (Distrib.toHasAdd.{0} (ZMod n) (Ring.toDistrib.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n))))
-but is expected to have type
-  forall (n : Nat), RingEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (ZMod n) (NonUnitalNonAssocRing.toMul.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (NonAssocRing.toNonUnitalNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (Ring.toNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (Ideal.Quotient.commRing.{0} Int Int.instCommRingInt (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))))))) (NonUnitalNonAssocRing.toMul.{0} (ZMod n) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod n) (Ring.toNonAssocRing.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n))))) (Distrib.toAdd.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (NonUnitalNonAssocSemiring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (NonAssocRing.toNonUnitalNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (Ring.toNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (Ideal.Quotient.commRing.{0} Int Int.instCommRingInt (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))))))))) (Distrib.toAdd.{0} (ZMod n) (NonUnitalNonAssocSemiring.toDistrib.{0} (ZMod n) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (ZMod n) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod n) (Ring.toNonAssocRing.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n)))))))
-Case conversion may be inaccurate. Consider using '#align int.quotient_span_nat_equiv_zmod Int.quotientSpanNatEquivZModₓ'. -/
 /-- `ℤ` modulo the ideal generated by `n : ℕ` is `zmod n`. -/
 def quotientSpanNatEquivZMod : ℤ ⧸ Ideal.span {↑n} ≃+* ZMod n :=
   (Ideal.quotEquivOfEq (ZMod.ker_int_castRingHom _)).symm.trans <|
@@ -83,12 +65,6 @@ def quotientSpanNatEquivZMod : ℤ ⧸ Ideal.span {↑n} ≃+* ZMod n :=
       show Function.RightInverse coe (Int.castRingHom (ZMod n)) from int_cast_zmod_cast
 #align int.quotient_span_nat_equiv_zmod Int.quotientSpanNatEquivZMod
 
-/- warning: int.quotient_span_equiv_zmod -> Int.quotientSpanEquivZMod is a dubious translation:
-lean 3 declaration is
-  forall (a : Int), RingEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing)) (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (ZMod (Int.natAbs a)) (Distrib.toHasMul.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (Ring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (Ideal.Quotient.commRing.{0} Int Int.commRing (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a)))))) (Distrib.toHasAdd.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (Ring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (Ideal.Quotient.commRing.{0} Int Int.commRing (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a)))))) (Distrib.toHasMul.{0} (ZMod (Int.natAbs a)) (Ring.toDistrib.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a))))) (Distrib.toHasAdd.{0} (ZMod (Int.natAbs a)) (Ring.toDistrib.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a)))))
-but is expected to have type
-  forall (a : Int), RingEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (ZMod (Int.natAbs a)) (NonUnitalNonAssocRing.toMul.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (NonAssocRing.toNonUnitalNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (Ring.toNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (Ideal.Quotient.commRing.{0} Int Int.instCommRingInt (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))))))) (NonUnitalNonAssocRing.toMul.{0} (ZMod (Int.natAbs a)) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod (Int.natAbs a)) (Ring.toNonAssocRing.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a)))))) (Distrib.toAdd.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (NonUnitalNonAssocSemiring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (NonAssocRing.toNonUnitalNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (Ring.toNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (Ideal.Quotient.commRing.{0} Int Int.instCommRingInt (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))))))))) (Distrib.toAdd.{0} (ZMod (Int.natAbs a)) (NonUnitalNonAssocSemiring.toDistrib.{0} (ZMod (Int.natAbs a)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (ZMod (Int.natAbs a)) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod (Int.natAbs a)) (Ring.toNonAssocRing.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a))))))))
-Case conversion may be inaccurate. Consider using '#align int.quotient_span_equiv_zmod Int.quotientSpanEquivZModₓ'. -/
 /-- `ℤ` modulo the ideal generated by `a : ℤ` is `zmod a.nat_abs`. -/
 def quotientSpanEquivZMod (a : ℤ) : ℤ ⧸ Ideal.span ({a} : Set ℤ) ≃+* ZMod a.natAbs :=
   (Ideal.quotEquivOfEq (span_natAbs a)).symm.trans (quotientSpanNatEquivZMod a.natAbs)
@@ -157,23 +133,11 @@ theorem zpowersQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod ((·
 #align mul_action.zpowers_quotient_stabilizer_equiv_symm_apply MulAction.zpowersQuotientStabilizerEquiv_symm_apply
 -/
 
-/- warning: mul_action.orbit_zpowers_equiv -> MulAction.orbitZpowersEquiv is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β), Equiv.{succ u2, 1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β), Equiv.{succ u2, 1} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b))
-Case conversion may be inaccurate. Consider using '#align mul_action.orbit_zpowers_equiv MulAction.orbitZpowersEquivₓ'. -/
 /-- The orbit `(a ^ ℤ) • b` is a cycle of order `minimal_period ((•) a) b`. -/
 noncomputable def orbitZpowersEquiv : orbit (zpowers a) b ≃ ZMod (minimalPeriod ((· • ·) a) b) :=
   (orbitEquivQuotientStabilizer _ b).trans (zpowersQuotientStabilizerEquiv a b).toEquiv
 #align mul_action.orbit_zpowers_equiv MulAction.orbitZpowersEquiv
 
-/- warning: add_action.orbit_zmultiples_equiv -> AddAction.orbitZmultiplesEquiv is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_5 : AddGroup.{u1} α] (a : α) [_inst_6 : AddAction.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5))] (b : β), Equiv.{succ u2, 1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_5 : AddGroup.{u1} α] (a : α) [_inst_6 : AddAction.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5))] (b : β), Equiv.{succ u2, 1} (Set.Elem.{u2} β (AddAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u1, u2, u2} α β β (instHVAdd.{u1, u2} α β (AddAction.toVAdd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b))
-Case conversion may be inaccurate. Consider using '#align add_action.orbit_zmultiples_equiv AddAction.orbitZmultiplesEquivₓ'. -/
 /-- The orbit `(ℤ • a) +ᵥ b` is a cycle of order `minimal_period ((+ᵥ) a) b`. -/
 noncomputable def AddAction.orbitZmultiplesEquiv {α β : Type _} [AddGroup α] (a : α) [AddAction α β]
     (b : β) : AddAction.orbit (zmultiples a) b ≃ ZMod (minimalPeriod ((· +ᵥ ·) a) b) :=
@@ -183,9 +147,6 @@ noncomputable def AddAction.orbitZmultiplesEquiv {α β : Type _} [AddGroup α]
 
 attribute [to_additive orbit_zmultiples_equiv] orbit_zpowers_equiv
 
-/- warning: mul_action.orbit_zpowers_equiv_symm_apply -> MulAction.orbitZpowersEquiv_symm_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZpowersEquiv_symm_applyₓ'. -/
 @[to_additive orbit_zmultiples_equiv_symm_apply]
 theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)) :
     (orbitZpowersEquiv a b).symm k =
@@ -194,9 +155,6 @@ theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)
 #align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZpowersEquiv_symm_apply
 #align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbit_zmultiples_equiv_symm_apply
 
-/- warning: mul_action.orbit_zpowers_equiv_symm_apply' -> MulAction.orbitZpowersEquiv_symm_apply' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZpowersEquiv_symm_apply'ₓ'. -/
 theorem orbitZpowersEquiv_symm_apply' (k : ℤ) :
     (orbitZpowersEquiv a b).symm k = (⟨a, mem_zpowers a⟩ : zpowers a) ^ k • ⟨b, mem_orbit_self b⟩ :=
   by
@@ -204,9 +162,6 @@ theorem orbitZpowersEquiv_symm_apply' (k : ℤ) :
   exact Subtype.ext (zpow_smul_mod_minimal_period _ _ k)
 #align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZpowersEquiv_symm_apply'
 
-/- warning: add_action.orbit_zmultiples_equiv_symm_apply' -> AddAction.orbitZmultiplesEquiv_symm_apply' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZmultiplesEquiv_symm_apply'ₓ'. -/
 theorem AddAction.orbitZmultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α] (a : α)
     [AddAction α β] (b : β) (k : ℤ) :
     (AddAction.orbitZmultiplesEquiv a b).symm k =
@@ -218,12 +173,6 @@ theorem AddAction.orbitZmultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α
 
 attribute [to_additive orbit_zmultiples_equiv_symm_apply'] orbit_zpowers_equiv_symm_apply'
 
-/- warning: mul_action.minimal_period_eq_card -> MulAction.minimalPeriod_eq_card is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) [_inst_5 : Fintype.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))], Eq.{1} Nat (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b) (Fintype.card.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) _inst_5)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) [_inst_5 : Fintype.{u2} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))], Eq.{1} Nat (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.2180 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.2182 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.2180 x._@.Mathlib.Data.ZMod.Quotient._hyg.2182) a) b) (Fintype.card.{u2} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) _inst_5)
-Case conversion may be inaccurate. Consider using '#align mul_action.minimal_period_eq_card MulAction.minimalPeriod_eq_cardₓ'. -/
 @[to_additive]
 theorem minimalPeriod_eq_card [Fintype (orbit (zpowers a) b)] :
     minimalPeriod ((· • ·) a) b = Fintype.card (orbit (zpowers a) b) := by
@@ -231,12 +180,6 @@ theorem minimalPeriod_eq_card [Fintype (orbit (zpowers a) b)] :
 #align mul_action.minimal_period_eq_card MulAction.minimalPeriod_eq_card
 #align add_action.minimal_period_eq_card AddAction.minimalPeriod_eq_card
 
-/- warning: mul_action.minimal_period_pos -> MulAction.minimalPeriod_pos is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) [_inst_5 : Finite.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))], NeZero.{0} Nat Nat.hasZero (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) [_inst_5 : Finite.{succ u2} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))], NeZero.{0} Nat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.2287 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.2289 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.2287 x._@.Mathlib.Data.ZMod.Quotient._hyg.2289) a) b)
-Case conversion may be inaccurate. Consider using '#align mul_action.minimal_period_pos MulAction.minimalPeriod_posₓ'. -/
 @[to_additive]
 instance minimalPeriod_pos [Finite <| orbit (zpowers a) b] :
     NeZero <| minimalPeriod ((· • ·) a) b :=
@@ -256,12 +199,6 @@ open Subgroup
 
 variable {α : Type _} [Group α] (a : α)
 
-/- warning: order_eq_card_zpowers' -> order_eq_card_zpowers' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_3 : Group.{u1} α] (a : α), Eq.{1} Nat (orderOf.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) a) (Nat.card.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_3 : Group.{u1} α] (a : α), Eq.{1} Nat (orderOf.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) a) (Nat.card.{u1} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))))
-Case conversion may be inaccurate. Consider using '#align order_eq_card_zpowers' order_eq_card_zpowers'ₓ'. -/
 /-- See also `order_eq_card_zpowers`. -/
 @[to_additive add_order_eq_card_zmultiples' "See also `add_order_eq_card_zmultiples`."]
 theorem order_eq_card_zpowers' : orderOf a = Nat.card (zpowers a) :=
@@ -273,12 +210,6 @@ theorem order_eq_card_zpowers' : orderOf a = Nat.card (zpowers a) :=
 
 variable {a}
 
-/- warning: is_of_fin_order.finite_zpowers -> IsOfFinOrder.finite_zpowers is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_3 : Group.{u1} α] {a : α}, (IsOfFinOrder.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) a) -> (Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_3 : Group.{u1} α] {a : α}, (IsOfFinOrder.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) a) -> (Finite.{succ u1} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))))
-Case conversion may be inaccurate. Consider using '#align is_of_fin_order.finite_zpowers IsOfFinOrder.finite_zpowersₓ'. -/
 @[to_additive IsOfFinAddOrder.finite_zmultiples]
 theorem IsOfFinOrder.finite_zpowers (h : IsOfFinOrder a) : Finite <| zpowers a :=
   by
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
 
 ! This file was ported from Lean 3 source module data.zmod.quotient
-! leanprover-community/mathlib commit da420a8c6dd5bdfb85c4ced85c34388f633bc6ff
+! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -16,6 +16,9 @@ import Mathbin.RingTheory.Ideal.QuotientOperations
 /-!
 # `zmod n` and quotient groups / rings
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file relates `zmod n` to the quotient group
 `quotient_add_group.quotient (add_subgroup.zmultiples n)` and to the quotient ring
 `(ideal.span {n}).quotient`.
@@ -181,10 +184,7 @@ noncomputable def AddAction.orbitZmultiplesEquiv {α β : Type _} [AddGroup α]
 attribute [to_additive orbit_zmultiples_equiv] orbit_zpowers_equiv
 
 /- warning: mul_action.orbit_zpowers_equiv_symm_apply -> MulAction.orbitZpowersEquiv_symm_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) (k : ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)), Eq.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (coeFn.{succ u2, succ u2} (Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (fun (_x : Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) => (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) -> (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.hasCoeToFun.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.symm.{succ u2, 1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (MulAction.orbitZpowersEquiv.{u1, u2} α β _inst_3 a _inst_4 b)) k) (SMul.smul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (MulAction.toHasSmul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (MulAction.orbit.mulAction.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (instHPow.{u1, 0} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subgroup.zpow.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a)) a (Subgroup.mem_zpowers.{u1} α _inst_3 a)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) Int (HasLiftT.mk.{1, 1} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) Int (CoeTCₓ.coe.{1, 1} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) Int (ZMod.hasCoeT.{0} Int (AddCommGroupWithOne.toAddGroupWithOne.{0} Int (Ring.toAddCommGroupWithOne.{0} Int Int.ring)) (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)))) k)) (Subtype.mk.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) b (MulAction.mem_orbit_self.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) (k : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1852 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1854 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1852 x._@.Mathlib.Data.ZMod.Quotient._hyg.1854) a) b)), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) k) (FunLike.coe.{succ u2, 1, succ u2} (Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (fun (_x : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) _x) (Equiv.instFunLikeEquiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.symm.{succ u2, 1} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (MulAction.orbitZpowersEquiv.{u1, u2} α β _inst_3 a _inst_4 b)) k) (HSMul.hSMul.{u1, u2, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) k) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) k) (instHSMul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) k) (MulAction.toSMul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) k) (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (MulAction.instMulActionElemOrbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (instHPow.{u1, 0} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subgroup.zpow.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subtype.mk.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a)) a (Subgroup.mem_zpowers.{u1} α _inst_3 a)) (ZMod.cast.{0} Int (Ring.toAddGroupWithOne.{0} Int Int.instRingInt) (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1852 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1854 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1852 x._@.Mathlib.Data.ZMod.Quotient._hyg.1854) a) b) k)) (Subtype.mk.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) b (MulAction.mem_orbit_self.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZpowersEquiv_symm_applyₓ'. -/
 @[to_additive orbit_zmultiples_equiv_symm_apply]
 theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)) :
@@ -195,10 +195,7 @@ theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)
 #align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbit_zmultiples_equiv_symm_apply
 
 /- warning: mul_action.orbit_zpowers_equiv_symm_apply' -> MulAction.orbitZpowersEquiv_symm_apply' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) (k : Int), Eq.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (coeFn.{succ u2, succ u2} (Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (fun (_x : Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) => (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) -> (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.hasCoeToFun.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.symm.{succ u2, 1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (MulAction.orbitZpowersEquiv.{u1, u2} α β _inst_3 a _inst_4 b)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (HasLiftT.mk.{1, 1} Int (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (CoeTCₓ.coe.{1, 1} Int (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (Int.castCoe.{0} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (AddGroupWithOne.toHasIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (AddCommGroupWithOne.toAddGroupWithOne.{0} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (Ring.toAddCommGroupWithOne.{0} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b))))))))) k)) (SMul.smul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (MulAction.toHasSmul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (MulAction.orbit.mulAction.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (instHPow.{u1, 0} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subgroup.zpow.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a)) a (Subgroup.mem_zpowers.{u1} α _inst_3 a)) k) (Subtype.mk.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) b (MulAction.mem_orbit_self.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) (k : Int), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) (FunLike.coe.{succ u2, 1, succ u2} (Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (fun (_x : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) _x) (Equiv.instFunLikeEquiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.symm.{succ u2, 1} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (MulAction.orbitZpowersEquiv.{u1, u2} α β _inst_3 a _inst_4 b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) (HSMul.hSMul.{u1, u2, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) (instHSMul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) (MulAction.toSMul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (MulAction.instMulActionElemOrbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (instHPow.{u1, 0} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subgroup.zpow.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subtype.mk.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a)) a (Subgroup.mem_zpowers.{u1} α _inst_3 a)) k) (Subtype.mk.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) b (MulAction.mem_orbit_self.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZpowersEquiv_symm_apply'ₓ'. -/
 theorem orbitZpowersEquiv_symm_apply' (k : ℤ) :
     (orbitZpowersEquiv a b).symm k = (⟨a, mem_zpowers a⟩ : zpowers a) ^ k • ⟨b, mem_orbit_self b⟩ :=
@@ -208,10 +205,7 @@ theorem orbitZpowersEquiv_symm_apply' (k : ℤ) :
 #align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZpowersEquiv_symm_apply'
 
 /- warning: add_action.orbit_zmultiples_equiv_symm_apply' -> AddAction.orbitZmultiplesEquiv_symm_apply' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_5 : AddGroup.{u1} α] (a : α) [_inst_6 : AddAction.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5))] (b : β) (k : Int), Eq.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (coeFn.{succ u2, succ u2} (Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b))) (fun (_x : Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b))) => (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) -> (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b))) (Equiv.hasCoeToFun.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b))) (Equiv.symm.{succ u2, 1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (AddAction.orbitZmultiplesEquiv.{u1, u2} α β _inst_5 a _inst_6 b)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (HasLiftT.mk.{1, 1} Int (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (CoeTCₓ.coe.{1, 1} Int (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (Int.castCoe.{0} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (AddGroupWithOne.toHasIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (AddCommGroupWithOne.toAddGroupWithOne.{0} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (Ring.toAddCommGroupWithOne.{0} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b))))))))) k)) (VAdd.vadd.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.hasMem.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (AddAction.toHasVadd.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.hasMem.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddAction.orbit.addAction.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.hasMem.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a))) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (SMul.smul.{0, u1} Int (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.hasMem.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a))) (AddSubgroup.zsmul.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) k (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.hasMem.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a)) a (AddSubgroup.mem_zmultiples.{u1} α _inst_5 a))) (Subtype.mk.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) b (AddAction.mem_orbit_self.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_5 : AddGroup.{u2} α] (a : α) [_inst_6 : AddAction.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5))] (b : β) (k : Int), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) (FunLike.coe.{succ u1, 1, succ u1} (Equiv.{1, succ u1} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b))) (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (fun (_x : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) _x) (Equiv.instFunLikeEquiv.{1, succ u1} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b))) (Equiv.symm.{succ u1, 1} (Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (AddAction.orbitZmultiplesEquiv.{u2, u1} α β _inst_5 a _inst_6 b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) (HVAdd.hVAdd.{u2, u1, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) (instHVAdd.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) (AddAction.toVAdd.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddAction.instAddActionElemOrbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b))) (HSMul.hSMul.{0, u2, u2} Int (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (instHSMul.{0, u2} Int (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.zsmul.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) k (Subtype.mk.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a)) a (AddSubgroup.mem_zmultiples.{u2} α _inst_5 a))) (Subtype.mk.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) b (AddAction.mem_orbit_self.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZmultiplesEquiv_symm_apply'ₓ'. -/
 theorem AddAction.orbitZmultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α] (a : α)
     [AddAction α β] (b : β) (k : ℤ) :
Diff
@@ -44,28 +44,52 @@ variable (n : ℕ) {A R : Type _} [AddGroup A] [Ring R]
 
 namespace Int
 
+/- warning: int.quotient_zmultiples_nat_equiv_zmod -> Int.quotientZmultiplesNatEquivZMod is a dubious translation:
+lean 3 declaration is
+  forall (n : Nat), AddEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))) (ZMod n) (AddZeroClass.toHasAdd.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))) (AddMonoid.toAddZeroClass.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))) (SubNegMonoid.toAddMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))) (AddGroup.toSubNegMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))) (QuotientAddGroup.Quotient.addGroup.{0} Int Int.addGroup (AddSubgroup.zmultiples.{0} Int Int.addGroup ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)) (Int.quotientZmultiplesNatEquivZMod._proof_1 n)))))) (Distrib.toHasAdd.{0} (ZMod n) (Ring.toDistrib.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n))))
+but is expected to have type
+  forall (n : Nat), AddEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n))) (ZMod n) (AddZeroClass.toAdd.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n))) (AddMonoid.toAddZeroClass.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n))) (SubNegMonoid.toAddMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n))) (AddGroup.toSubNegMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n))) (QuotientAddGroup.Quotient.addGroup.{0} Int Int.instAddGroupInt (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n)) (AddSubgroup.normal_of_comm.{0} Int Int.instAddCommGroupInt (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt (Nat.cast.{0} Int instNatCastInt n)))))))) (Distrib.toAdd.{0} (ZMod n) (NonUnitalNonAssocSemiring.toDistrib.{0} (ZMod n) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (ZMod n) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod n) (Ring.toNonAssocRing.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n)))))))
+Case conversion may be inaccurate. Consider using '#align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZmultiplesNatEquivZModₓ'. -/
 /-- `ℤ` modulo multiples of `n : ℕ` is `zmod n`. -/
-def quotientZmultiplesNatEquivZmod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
+def quotientZmultiplesNatEquivZMod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
   (quotientAddEquivOfEq (ZMod.ker_int_castAddHom _)).symm.trans <|
     quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) coe int_cast_zmod_cast
-#align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZmultiplesNatEquivZmod
-
+#align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZmultiplesNatEquivZMod
+
+/- warning: int.quotient_zmultiples_equiv_zmod -> Int.quotientZmultiplesEquivZMod is a dubious translation:
+lean 3 declaration is
+  forall (a : Int), AddEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup a)) (ZMod (Int.natAbs a)) (AddZeroClass.toHasAdd.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup a)) (AddMonoid.toAddZeroClass.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup a)) (SubNegMonoid.toAddMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup a)) (AddGroup.toSubNegMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.addGroup) (quotientAddGroup.Subgroup.hasQuotient.{0} Int Int.addGroup) (AddSubgroup.zmultiples.{0} Int Int.addGroup a)) (QuotientAddGroup.Quotient.addGroup.{0} Int Int.addGroup (AddSubgroup.zmultiples.{0} Int Int.addGroup a) (Int.quotientZmultiplesEquivZMod._proof_1 a)))))) (Distrib.toHasAdd.{0} (ZMod (Int.natAbs a)) (Ring.toDistrib.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a)))))
+but is expected to have type
+  forall (a : Int), AddEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a)) (ZMod (Int.natAbs a)) (AddZeroClass.toAdd.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a)) (AddMonoid.toAddZeroClass.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a)) (SubNegMonoid.toAddMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a)) (AddGroup.toSubNegMonoid.{0} (HasQuotient.Quotient.{0, 0} Int (AddSubgroup.{0} Int Int.instAddGroupInt) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Int Int.instAddGroupInt) (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a)) (QuotientAddGroup.Quotient.addGroup.{0} Int Int.instAddGroupInt (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a) (AddSubgroup.normal_of_comm.{0} Int Int.instAddCommGroupInt (AddSubgroup.zmultiples.{0} Int Int.instAddGroupInt a))))))) (Distrib.toAdd.{0} (ZMod (Int.natAbs a)) (NonUnitalNonAssocSemiring.toDistrib.{0} (ZMod (Int.natAbs a)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (ZMod (Int.natAbs a)) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod (Int.natAbs a)) (Ring.toNonAssocRing.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a))))))))
+Case conversion may be inaccurate. Consider using '#align int.quotient_zmultiples_equiv_zmod Int.quotientZmultiplesEquivZModₓ'. -/
 /-- `ℤ` modulo multiples of `a : ℤ` is `zmod a.nat_abs`. -/
-def quotientZmultiplesEquivZmod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃+ ZMod a.natAbs :=
-  (quotientAddEquivOfEq (zmultiples_natAbs a)).symm.trans (quotientZmultiplesNatEquivZmod a.natAbs)
-#align int.quotient_zmultiples_equiv_zmod Int.quotientZmultiplesEquivZmod
-
+def quotientZmultiplesEquivZMod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃+ ZMod a.natAbs :=
+  (quotientAddEquivOfEq (zmultiples_natAbs a)).symm.trans (quotientZmultiplesNatEquivZMod a.natAbs)
+#align int.quotient_zmultiples_equiv_zmod Int.quotientZmultiplesEquivZMod
+
+/- warning: int.quotient_span_nat_equiv_zmod -> Int.quotientSpanNatEquivZMod is a dubious translation:
+lean 3 declaration is
+  forall (n : Nat), RingEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing)) (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (ZMod n) (Distrib.toHasMul.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (Ring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (Ideal.Quotient.commRing.{0} Int Int.commRing (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))))))) (Distrib.toHasAdd.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (Ring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (Ideal.Quotient.commRing.{0} Int Int.commRing (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n))))))) (Distrib.toHasMul.{0} (ZMod n) (Ring.toDistrib.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n)))) (Distrib.toHasAdd.{0} (ZMod n) (Ring.toDistrib.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n))))
+but is expected to have type
+  forall (n : Nat), RingEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (ZMod n) (NonUnitalNonAssocRing.toMul.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (NonAssocRing.toNonUnitalNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (Ring.toNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (Ideal.Quotient.commRing.{0} Int Int.instCommRingInt (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))))))) (NonUnitalNonAssocRing.toMul.{0} (ZMod n) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod n) (Ring.toNonAssocRing.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n))))) (Distrib.toAdd.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (NonUnitalNonAssocSemiring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (NonAssocRing.toNonUnitalNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (Ring.toNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))) (Ideal.Quotient.commRing.{0} Int Int.instCommRingInt (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) (Nat.cast.{0} Int instNatCastInt n)))))))))) (Distrib.toAdd.{0} (ZMod n) (NonUnitalNonAssocSemiring.toDistrib.{0} (ZMod n) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (ZMod n) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod n) (Ring.toNonAssocRing.{0} (ZMod n) (CommRing.toRing.{0} (ZMod n) (ZMod.commRing n)))))))
+Case conversion may be inaccurate. Consider using '#align int.quotient_span_nat_equiv_zmod Int.quotientSpanNatEquivZModₓ'. -/
 /-- `ℤ` modulo the ideal generated by `n : ℕ` is `zmod n`. -/
-def quotientSpanNatEquivZmod : ℤ ⧸ Ideal.span {↑n} ≃+* ZMod n :=
+def quotientSpanNatEquivZMod : ℤ ⧸ Ideal.span {↑n} ≃+* ZMod n :=
   (Ideal.quotEquivOfEq (ZMod.ker_int_castRingHom _)).symm.trans <|
     RingHom.quotientKerEquivOfRightInverse <|
       show Function.RightInverse coe (Int.castRingHom (ZMod n)) from int_cast_zmod_cast
-#align int.quotient_span_nat_equiv_zmod Int.quotientSpanNatEquivZmod
-
+#align int.quotient_span_nat_equiv_zmod Int.quotientSpanNatEquivZMod
+
+/- warning: int.quotient_span_equiv_zmod -> Int.quotientSpanEquivZMod is a dubious translation:
+lean 3 declaration is
+  forall (a : Int), RingEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing)) (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (ZMod (Int.natAbs a)) (Distrib.toHasMul.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (Ring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (Ideal.Quotient.commRing.{0} Int Int.commRing (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a)))))) (Distrib.toHasAdd.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (Ring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int (Ring.toSemiring.{0} Int (CommRing.toRing.{0} Int Int.commRing))) (Ideal.hasQuotient.{0} Int Int.commRing) (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a))) (Ideal.Quotient.commRing.{0} Int Int.commRing (Ideal.span.{0} Int Int.semiring (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.hasSingleton.{0} Int) a)))))) (Distrib.toHasMul.{0} (ZMod (Int.natAbs a)) (Ring.toDistrib.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a))))) (Distrib.toHasAdd.{0} (ZMod (Int.natAbs a)) (Ring.toDistrib.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a)))))
+but is expected to have type
+  forall (a : Int), RingEquiv.{0, 0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (ZMod (Int.natAbs a)) (NonUnitalNonAssocRing.toMul.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (NonAssocRing.toNonUnitalNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (Ring.toNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (Ideal.Quotient.commRing.{0} Int Int.instCommRingInt (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))))))) (NonUnitalNonAssocRing.toMul.{0} (ZMod (Int.natAbs a)) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod (Int.natAbs a)) (Ring.toNonAssocRing.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a)))))) (Distrib.toAdd.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (NonUnitalNonAssocSemiring.toDistrib.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (NonAssocRing.toNonUnitalNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (Ring.toNonAssocRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (CommRing.toRing.{0} (HasQuotient.Quotient.{0, 0} Int (Ideal.{0} Int Int.instSemiringInt) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{0} Int Int.instCommRingInt) (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))) (Ideal.Quotient.commRing.{0} Int Int.instCommRingInt (Ideal.span.{0} Int Int.instSemiringInt (Singleton.singleton.{0, 0} Int (Set.{0} Int) (Set.instSingletonSet.{0} Int) a))))))))) (Distrib.toAdd.{0} (ZMod (Int.natAbs a)) (NonUnitalNonAssocSemiring.toDistrib.{0} (ZMod (Int.natAbs a)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} (ZMod (Int.natAbs a)) (NonAssocRing.toNonUnitalNonAssocRing.{0} (ZMod (Int.natAbs a)) (Ring.toNonAssocRing.{0} (ZMod (Int.natAbs a)) (CommRing.toRing.{0} (ZMod (Int.natAbs a)) (ZMod.commRing (Int.natAbs a))))))))
+Case conversion may be inaccurate. Consider using '#align int.quotient_span_equiv_zmod Int.quotientSpanEquivZModₓ'. -/
 /-- `ℤ` modulo the ideal generated by `a : ℤ` is `zmod a.nat_abs`. -/
-def quotientSpanEquivZmod (a : ℤ) : ℤ ⧸ Ideal.span ({a} : Set ℤ) ≃+* ZMod a.natAbs :=
-  (Ideal.quotEquivOfEq (span_natAbs a)).symm.trans (quotientSpanNatEquivZmod a.natAbs)
-#align int.quotient_span_equiv_zmod Int.quotientSpanEquivZmod
+def quotientSpanEquivZMod (a : ℤ) : ℤ ⧸ Ideal.span ({a} : Set ℤ) ≃+* ZMod a.natAbs :=
+  (Ideal.quotEquivOfEq (span_natAbs a)).symm.trans (quotientSpanNatEquivZMod a.natAbs)
+#align int.quotient_span_equiv_zmod Int.quotientSpanEquivZMod
 
 end Int
 
@@ -75,6 +99,7 @@ open AddSubgroup AddMonoidHom AddEquiv Function
 
 variable {α β : Type _} [AddGroup α] (a : α) [AddAction α β] (b : β)
 
+#print AddAction.zmultiplesQuotientStabilizerEquiv /-
 /-- The quotient `(ℤ ∙ a) ⧸ (stabilizer b)` is cyclic of order `minimal_period ((+ᵥ) a) b`. -/
 noncomputable def zmultiplesQuotientStabilizerEquiv :
     zmultiples a ⧸ stabilizer (zmultiples a) b ≃+ ZMod (minimalPeriod ((· +ᵥ ·) a) b) :=
@@ -91,14 +116,17 @@ noncomputable def zmultiplesQuotientStabilizerEquiv :
               zsmul_vadd_eq_iff_minimal_period_dvd]
             exact (eq_zero_iff _).mp hn, fun q =>
             induction_on' q fun ⟨_, n, rfl⟩ => ⟨n, rfl⟩⟩).symm.trans
-    (Int.quotientZmultiplesNatEquivZmod (minimalPeriod ((· +ᵥ ·) a) b))
+    (Int.quotientZmultiplesNatEquivZMod (minimalPeriod ((· +ᵥ ·) a) b))
 #align add_action.zmultiples_quotient_stabilizer_equiv AddAction.zmultiplesQuotientStabilizerEquiv
+-/
 
+#print AddAction.zmultiplesQuotientStabilizerEquiv_symm_apply /-
 theorem zmultiplesQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod ((· +ᵥ ·) a) b)) :
     (zmultiplesQuotientStabilizerEquiv a b).symm n =
       (n : ℤ) • (⟨a, mem_zmultiples a⟩ : zmultiples a) :=
   rfl
 #align add_action.zmultiples_quotient_stabilizer_equiv_symm_apply AddAction.zmultiplesQuotientStabilizerEquiv_symm_apply
+-/
 
 end AddAction
 
@@ -110,23 +138,39 @@ variable {α β : Type _} [Group α] (a : α) [MulAction α β] (b : β)
 
 attribute [local semireducible] MulOpposite
 
+#print MulAction.zpowersQuotientStabilizerEquiv /-
 /-- The quotient `(a ^ ℤ) ⧸ (stabilizer b)` is cyclic of order `minimal_period ((•) a) b`. -/
 noncomputable def zpowersQuotientStabilizerEquiv :
     zpowers a ⧸ stabilizer (zpowers a) b ≃* Multiplicative (ZMod (minimalPeriod ((· • ·) a) b)) :=
   let f := zmultiplesQuotientStabilizerEquiv (Additive.ofMul a) b
   ⟨f.toFun, f.invFun, f.left_inv, f.right_inv, f.map_add'⟩
 #align mul_action.zpowers_quotient_stabilizer_equiv MulAction.zpowersQuotientStabilizerEquiv
+-/
 
+#print MulAction.zpowersQuotientStabilizerEquiv_symm_apply /-
 theorem zpowersQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod ((· • ·) a) b)) :
     (zpowersQuotientStabilizerEquiv a b).symm n = (⟨a, mem_zpowers a⟩ : zpowers a) ^ (n : ℤ) :=
   rfl
 #align mul_action.zpowers_quotient_stabilizer_equiv_symm_apply MulAction.zpowersQuotientStabilizerEquiv_symm_apply
+-/
 
+/- warning: mul_action.orbit_zpowers_equiv -> MulAction.orbitZpowersEquiv is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β), Equiv.{succ u2, 1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β), Equiv.{succ u2, 1} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b))
+Case conversion may be inaccurate. Consider using '#align mul_action.orbit_zpowers_equiv MulAction.orbitZpowersEquivₓ'. -/
 /-- The orbit `(a ^ ℤ) • b` is a cycle of order `minimal_period ((•) a) b`. -/
 noncomputable def orbitZpowersEquiv : orbit (zpowers a) b ≃ ZMod (minimalPeriod ((· • ·) a) b) :=
   (orbitEquivQuotientStabilizer _ b).trans (zpowersQuotientStabilizerEquiv a b).toEquiv
 #align mul_action.orbit_zpowers_equiv MulAction.orbitZpowersEquiv
 
+/- warning: add_action.orbit_zmultiples_equiv -> AddAction.orbitZmultiplesEquiv is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_5 : AddGroup.{u1} α] (a : α) [_inst_6 : AddAction.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5))] (b : β), Equiv.{succ u2, 1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_5 : AddGroup.{u1} α] (a : α) [_inst_6 : AddAction.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5))] (b : β), Equiv.{succ u2, 1} (Set.Elem.{u2} β (AddAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u1, u2, u2} α β β (instHVAdd.{u1, u2} α β (AddAction.toVAdd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b))
+Case conversion may be inaccurate. Consider using '#align add_action.orbit_zmultiples_equiv AddAction.orbitZmultiplesEquivₓ'. -/
 /-- The orbit `(ℤ • a) +ᵥ b` is a cycle of order `minimal_period ((+ᵥ) a) b`. -/
 noncomputable def AddAction.orbitZmultiplesEquiv {α β : Type _} [AddGroup α] (a : α) [AddAction α β]
     (b : β) : AddAction.orbit (zmultiples a) b ≃ ZMod (minimalPeriod ((· +ᵥ ·) a) b) :=
@@ -136,6 +180,12 @@ noncomputable def AddAction.orbitZmultiplesEquiv {α β : Type _} [AddGroup α]
 
 attribute [to_additive orbit_zmultiples_equiv] orbit_zpowers_equiv
 
+/- warning: mul_action.orbit_zpowers_equiv_symm_apply -> MulAction.orbitZpowersEquiv_symm_apply is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) (k : ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)), Eq.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (coeFn.{succ u2, succ u2} (Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (fun (_x : Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) => (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) -> (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.hasCoeToFun.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.symm.{succ u2, 1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (MulAction.orbitZpowersEquiv.{u1, u2} α β _inst_3 a _inst_4 b)) k) (SMul.smul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (MulAction.toHasSmul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (MulAction.orbit.mulAction.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (instHPow.{u1, 0} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subgroup.zpow.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a)) a (Subgroup.mem_zpowers.{u1} α _inst_3 a)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) Int (HasLiftT.mk.{1, 1} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) Int (CoeTCₓ.coe.{1, 1} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) Int (ZMod.hasCoeT.{0} Int (AddCommGroupWithOne.toAddGroupWithOne.{0} Int (Ring.toAddCommGroupWithOne.{0} Int Int.ring)) (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)))) k)) (Subtype.mk.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) b (MulAction.mem_orbit_self.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) (k : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1852 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1854 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1852 x._@.Mathlib.Data.ZMod.Quotient._hyg.1854) a) b)), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) k) (FunLike.coe.{succ u2, 1, succ u2} (Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (fun (_x : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) _x) (Equiv.instFunLikeEquiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.symm.{succ u2, 1} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (MulAction.orbitZpowersEquiv.{u1, u2} α β _inst_3 a _inst_4 b)) k) (HSMul.hSMul.{u1, u2, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) k) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) k) (instHSMul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) k) (MulAction.toSMul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) k) (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (MulAction.instMulActionElemOrbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (instHPow.{u1, 0} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subgroup.zpow.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subtype.mk.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a)) a (Subgroup.mem_zpowers.{u1} α _inst_3 a)) (ZMod.cast.{0} Int (Ring.toAddGroupWithOne.{0} Int Int.instRingInt) (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1852 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1854 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1852 x._@.Mathlib.Data.ZMod.Quotient._hyg.1854) a) b) k)) (Subtype.mk.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) b (MulAction.mem_orbit_self.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)))
+Case conversion may be inaccurate. Consider using '#align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZpowersEquiv_symm_applyₓ'. -/
 @[to_additive orbit_zmultiples_equiv_symm_apply]
 theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)) :
     (orbitZpowersEquiv a b).symm k =
@@ -144,6 +194,12 @@ theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)
 #align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZpowersEquiv_symm_apply
 #align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbit_zmultiples_equiv_symm_apply
 
+/- warning: mul_action.orbit_zpowers_equiv_symm_apply' -> MulAction.orbitZpowersEquiv_symm_apply' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) (k : Int), Eq.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (coeFn.{succ u2, succ u2} (Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (fun (_x : Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) => (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) -> (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.hasCoeToFun.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.symm.{succ u2, 1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (MulAction.orbitZpowersEquiv.{u1, u2} α β _inst_3 a _inst_4 b)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (HasLiftT.mk.{1, 1} Int (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (CoeTCₓ.coe.{1, 1} Int (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (Int.castCoe.{0} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (AddGroupWithOne.toHasIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (AddCommGroupWithOne.toAddGroupWithOne.{0} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (Ring.toAddCommGroupWithOne.{0} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b))))))))) k)) (SMul.smul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (MulAction.toHasSmul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (MulAction.orbit.mulAction.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (instHPow.{u1, 0} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subgroup.zpow.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a)) a (Subgroup.mem_zpowers.{u1} α _inst_3 a)) k) (Subtype.mk.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) b (MulAction.mem_orbit_self.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) (k : Int), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) (FunLike.coe.{succ u2, 1, succ u2} (Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (fun (_x : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) _x) (Equiv.instFunLikeEquiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (Equiv.symm.{succ u2, 1} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (MulAction.orbitZpowersEquiv.{u1, u2} α β _inst_3 a _inst_4 b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) (HSMul.hSMul.{u1, u2, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) (instHSMul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) (MulAction.toSMul.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) => Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1710 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1708 x._@.Mathlib.Data.ZMod.Quotient._hyg.1710) a) b)))) k)) (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (MulAction.instMulActionElemOrbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) (instHPow.{u1, 0} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) Int (Subgroup.zpow.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subtype.mk.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a)) a (Subgroup.mem_zpowers.{u1} α _inst_3 a)) k) (Subtype.mk.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) b (MulAction.mem_orbit_self.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)))
+Case conversion may be inaccurate. Consider using '#align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZpowersEquiv_symm_apply'ₓ'. -/
 theorem orbitZpowersEquiv_symm_apply' (k : ℤ) :
     (orbitZpowersEquiv a b).symm k = (⟨a, mem_zpowers a⟩ : zpowers a) ^ k • ⟨b, mem_orbit_self b⟩ :=
   by
@@ -151,6 +207,12 @@ theorem orbitZpowersEquiv_symm_apply' (k : ℤ) :
   exact Subtype.ext (zpow_smul_mod_minimal_period _ _ k)
 #align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZpowersEquiv_symm_apply'
 
+/- warning: add_action.orbit_zmultiples_equiv_symm_apply' -> AddAction.orbitZmultiplesEquiv_symm_apply' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_5 : AddGroup.{u1} α] (a : α) [_inst_6 : AddAction.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5))] (b : β) (k : Int), Eq.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (coeFn.{succ u2, succ u2} (Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b))) (fun (_x : Equiv.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b))) => (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) -> (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b))) (Equiv.hasCoeToFun.{1, succ u2} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b))) (Equiv.symm.{succ u2, 1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (AddAction.orbitZmultiplesEquiv.{u1, u2} α β _inst_5 a _inst_6 b)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (HasLiftT.mk.{1, 1} Int (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (CoeTCₓ.coe.{1, 1} Int (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (Int.castCoe.{0} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (AddGroupWithOne.toHasIntCast.{0} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (AddCommGroupWithOne.toAddGroupWithOne.{0} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (Ring.toAddCommGroupWithOne.{0} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b)) (ZMod.commRing (Function.minimalPeriod.{u2} β (VAdd.vadd.{u1, u2} α β (AddAction.toHasVadd.{u1, u2} α β (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α _inst_5)) _inst_6) a) b))))))))) k)) (VAdd.vadd.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.hasMem.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (AddAction.toHasVadd.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.hasMem.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddAction.orbit.addAction.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.hasMem.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a))) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) (SMul.smul.{0, u1} Int (Subtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.hasMem.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a))) (AddSubgroup.zsmul.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) k (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (AddSubgroup.{u1} α _inst_5) (SetLike.hasMem.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) x (AddSubgroup.zmultiples.{u1} α _inst_5 a)) a (AddSubgroup.mem_zmultiples.{u1} α _inst_5 a))) (Subtype.mk.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (AddAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)) b (AddAction.mem_orbit_self.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) β (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} α _inst_5) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} α _inst_5) α (AddSubgroup.setLike.{u1} α _inst_5)) (AddSubgroup.zmultiples.{u1} α _inst_5 a)) (AddSubgroup.toAddGroup.{u1} α _inst_5 (AddSubgroup.zmultiples.{u1} α _inst_5 a)))) (AddSubgroup.addAction.{u1, u2} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u1} α _inst_5 a)) b)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_5 : AddGroup.{u2} α] (a : α) [_inst_6 : AddAction.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5))] (b : β) (k : Int), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) (FunLike.coe.{succ u1, 1, succ u1} (Equiv.{1, succ u1} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b))) (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (fun (_x : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) _x) (Equiv.instFunLikeEquiv.{1, succ u1} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b))) (Equiv.symm.{succ u1, 1} (Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (AddAction.orbitZmultiplesEquiv.{u2, u1} α β _inst_5 a _inst_6 b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) (HVAdd.hVAdd.{u2, u1, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) (instHVAdd.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) (AddAction.toVAdd.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) => Set.Elem.{u1} β (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) (Int.cast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (Ring.toIntCast.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (CommRing.toRing.{0} (ZMod (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)) (ZMod.commRing (Function.minimalPeriod.{u1} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.1790 : β) => HVAdd.hVAdd.{u2, u1, u1} α β β (instHVAdd.{u2, u1} α β (AddAction.toVAdd.{u2, u1} α β (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) _inst_6)) x._@.Mathlib.Data.ZMod.Quotient._hyg.1788 x._@.Mathlib.Data.ZMod.Quotient._hyg.1790) a) b)))) k)) (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddAction.instAddActionElemOrbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b))) (HSMul.hSMul.{0, u2, u2} Int (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (instHSMul.{0, u2} Int (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.zsmul.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) k (Subtype.mk.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a)) a (AddSubgroup.mem_zmultiples.{u2} α _inst_5 a))) (Subtype.mk.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (AddAction.orbit.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)) b (AddAction.mem_orbit_self.{u2, u1} (Subtype.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (AddSubgroup.{u2} α _inst_5) (SetLike.instMembership.{u2, u2} (AddSubgroup.{u2} α _inst_5) α (AddSubgroup.instSetLikeAddSubgroup.{u2} α _inst_5)) x (AddSubgroup.zmultiples.{u2} α _inst_5 a))) β (AddSubmonoid.toAddMonoid.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α _inst_5)) (AddSubgroup.toAddSubmonoid.{u2} α _inst_5 (AddSubgroup.zmultiples.{u2} α _inst_5 a))) (AddSubgroup.instAddActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupToAddMonoidToAddMonoidToSubNegAddMonoidToAddSubmonoid.{u2, u1} α _inst_5 β _inst_6 (AddSubgroup.zmultiples.{u2} α _inst_5 a)) b)))
+Case conversion may be inaccurate. Consider using '#align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZmultiplesEquiv_symm_apply'ₓ'. -/
 theorem AddAction.orbitZmultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α] (a : α)
     [AddAction α β] (b : β) (k : ℤ) :
     (AddAction.orbitZmultiplesEquiv a b).symm k =
@@ -162,13 +224,25 @@ theorem AddAction.orbitZmultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α
 
 attribute [to_additive orbit_zmultiples_equiv_symm_apply'] orbit_zpowers_equiv_symm_apply'
 
+/- warning: mul_action.minimal_period_eq_card -> MulAction.minimalPeriod_eq_card is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) [_inst_5 : Fintype.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))], Eq.{1} Nat (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b) (Fintype.card.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) _inst_5)
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) [_inst_5 : Fintype.{u2} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))], Eq.{1} Nat (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.2180 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.2182 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.2180 x._@.Mathlib.Data.ZMod.Quotient._hyg.2182) a) b) (Fintype.card.{u2} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b)) _inst_5)
+Case conversion may be inaccurate. Consider using '#align mul_action.minimal_period_eq_card MulAction.minimalPeriod_eq_cardₓ'. -/
 @[to_additive]
 theorem minimalPeriod_eq_card [Fintype (orbit (zpowers a) b)] :
     minimalPeriod ((· • ·) a) b = Fintype.card (orbit (zpowers a) b) := by
   rw [← Fintype.ofEquiv_card (orbit_zpowers_equiv a b), ZMod.card]
 #align mul_action.minimal_period_eq_card MulAction.minimalPeriod_eq_card
-#align add_action.minimal_period_eq_card AddAction.minimal_period_eq_card
-
+#align add_action.minimal_period_eq_card AddAction.minimalPeriod_eq_card
+
+/- warning: mul_action.minimal_period_pos -> MulAction.minimalPeriod_pos is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) [_inst_5 : Finite.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) β (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)) (Subgroup.toGroup.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a)))) (Subgroup.mulAction.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))], NeZero.{0} Nat Nat.hasZero (Function.minimalPeriod.{u2} β (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4) a) b)
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_3 : Group.{u1} α] (a : α) [_inst_4 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3))] (b : β) [_inst_5 : Finite.{succ u2} (Set.Elem.{u2} β (MulAction.orbit.{u1, u2} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))) β (Submonoid.toMonoid.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) (Subgroup.toSubmonoid.{u1} α _inst_3 (Subgroup.zpowers.{u1} α _inst_3 a))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} α _inst_3 β _inst_4 (Subgroup.zpowers.{u1} α _inst_3 a)) b))], NeZero.{0} Nat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) (Function.minimalPeriod.{u2} β ((fun (x._@.Mathlib.Data.ZMod.Quotient._hyg.2287 : α) (x._@.Mathlib.Data.ZMod.Quotient._hyg.2289 : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) _inst_4)) x._@.Mathlib.Data.ZMod.Quotient._hyg.2287 x._@.Mathlib.Data.ZMod.Quotient._hyg.2289) a) b)
+Case conversion may be inaccurate. Consider using '#align mul_action.minimal_period_pos MulAction.minimalPeriod_posₓ'. -/
 @[to_additive]
 instance minimalPeriod_pos [Finite <| orbit (zpowers a) b] :
     NeZero <| minimalPeriod ((· • ·) a) b :=
@@ -178,7 +252,7 @@ instance minimalPeriod_pos [Finite <| orbit (zpowers a) b] :
     rw [minimal_period_eq_card]
     exact Fintype.card_ne_zero⟩
 #align mul_action.minimal_period_pos MulAction.minimalPeriod_pos
-#align add_action.minimal_period_pos AddAction.minimal_period_pos
+#align add_action.minimal_period_pos AddAction.minimalPeriod_pos
 
 end MulAction
 
@@ -188,6 +262,12 @@ open Subgroup
 
 variable {α : Type _} [Group α] (a : α)
 
+/- warning: order_eq_card_zpowers' -> order_eq_card_zpowers' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_3 : Group.{u1} α] (a : α), Eq.{1} Nat (orderOf.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) a) (Nat.card.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_3 : Group.{u1} α] (a : α), Eq.{1} Nat (orderOf.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) a) (Nat.card.{u1} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))))
+Case conversion may be inaccurate. Consider using '#align order_eq_card_zpowers' order_eq_card_zpowers'ₓ'. -/
 /-- See also `order_eq_card_zpowers`. -/
 @[to_additive add_order_eq_card_zmultiples' "See also `add_order_eq_card_zmultiples`."]
 theorem order_eq_card_zpowers' : orderOf a = Nat.card (zpowers a) :=
@@ -199,6 +279,12 @@ theorem order_eq_card_zpowers' : orderOf a = Nat.card (zpowers a) :=
 
 variable {a}
 
+/- warning: is_of_fin_order.finite_zpowers -> IsOfFinOrder.finite_zpowers is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_3 : Group.{u1} α] {a : α}, (IsOfFinOrder.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) a) -> (Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} α _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.setLike.{u1} α _inst_3)) (Subgroup.zpowers.{u1} α _inst_3 a)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_3 : Group.{u1} α] {a : α}, (IsOfFinOrder.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_3)) a) -> (Finite.{succ u1} (Subtype.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Subgroup.{u1} α _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} α _inst_3) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_3)) x (Subgroup.zpowers.{u1} α _inst_3 a))))
+Case conversion may be inaccurate. Consider using '#align is_of_fin_order.finite_zpowers IsOfFinOrder.finite_zpowersₓ'. -/
 @[to_additive IsOfFinAddOrder.finite_zmultiples]
 theorem IsOfFinOrder.finite_zpowers (h : IsOfFinOrder a) : Finite <| zpowers a :=
   by
Diff
@@ -193,7 +193,7 @@ variable {α : Type _} [Group α] (a : α)
 theorem order_eq_card_zpowers' : orderOf a = Nat.card (zpowers a) :=
   by
   have := Nat.card_congr (MulAction.orbitZpowersEquiv a (1 : α))
-  rwa [Nat.card_zMod, orbit_subgroup_one_eq_self, eq_comm] at this
+  rwa [Nat.card_zmod, orbit_subgroup_one_eq_self, eq_comm] at this
 #align order_eq_card_zpowers' order_eq_card_zpowers'
 #align add_order_eq_card_zmultiples' add_order_eq_card_zmultiples'
 
Diff
@@ -47,7 +47,7 @@ namespace Int
 /-- `ℤ` modulo multiples of `n : ℕ` is `zmod n`. -/
 def quotientZmultiplesNatEquivZmod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
   (quotientAddEquivOfEq (ZMod.ker_int_castAddHom _)).symm.trans <|
-    quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) coe int_cast_zMod_cast
+    quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) coe int_cast_zmod_cast
 #align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZmultiplesNatEquivZmod
 
 /-- `ℤ` modulo multiples of `a : ℤ` is `zmod a.nat_abs`. -/
@@ -59,7 +59,7 @@ def quotientZmultiplesEquivZmod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃
 def quotientSpanNatEquivZmod : ℤ ⧸ Ideal.span {↑n} ≃+* ZMod n :=
   (Ideal.quotEquivOfEq (ZMod.ker_int_castRingHom _)).symm.trans <|
     RingHom.quotientKerEquivOfRightInverse <|
-      show Function.RightInverse coe (Int.castRingHom (ZMod n)) from int_cast_zMod_cast
+      show Function.RightInverse coe (Int.castRingHom (ZMod n)) from int_cast_zmod_cast
 #align int.quotient_span_nat_equiv_zmod Int.quotientSpanNatEquivZmod
 
 /-- `ℤ` modulo the ideal generated by `a : ℤ` is `zmod a.nat_abs`. -/
Diff
@@ -4,13 +4,14 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
 
 ! This file was ported from Lean 3 source module data.zmod.quotient
-! leanprover-community/mathlib commit d8ac338019a0b33162d0e09cd823cae696a718f8
+! leanprover-community/mathlib commit da420a8c6dd5bdfb85c4ced85c34388f633bc6ff
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
 import Mathbin.Data.Zmod.Basic
 import Mathbin.GroupTheory.GroupAction.Quotient
 import Mathbin.RingTheory.Int.Basic
+import Mathbin.RingTheory.Ideal.QuotientOperations
 
 /-!
 # `zmod n` and quotient groups / rings

Changes in mathlib4

mathlib3
mathlib4
chore: unify date formatting in lemma deprecations (#12334)
  • consistently use the YYYY-MM-DD format
  • when easily possible, put the date on the same line as the deprecated attribute
  • when easily possible, format the entire declaration on the same line

Why these changes?

  • consistency makes it easier for tools to parse this information
  • compactness: I don't see a good reason for these declarations taking up more space than needed; as I understand it, deprecated lemmas are not supposed to be used in mathlib anyway
  • putting the date on the same line as the attribute makes it easier to discover un-dated deprecations; they also ease writing a tool to replace these by a machine-readable version using leanprover/lean4#3968
Diff
@@ -153,8 +153,9 @@ theorem orbitZPowersEquiv_symm_apply (k : ZMod (minimalPeriod (a • ·) b)) :
   rfl
 #align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZPowersEquiv_symm_apply
 #align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbitZMultiplesEquiv_symm_apply
-/- 2024-02-21 -/ @[deprecated] alias _root_.AddAction.orbit_zmultiples_equiv_symm_apply :=
-  orbitZMultiplesEquiv_symm_apply
+
+@[deprecated] -- 2024-02-21
+alias _root_.AddAction.orbit_zmultiples_equiv_symm_apply := orbitZMultiplesEquiv_symm_apply
 
 theorem orbitZPowersEquiv_symm_apply' (k : ℤ) :
     (orbitZPowersEquiv a b).symm k =
chore: Rename nat_cast/int_cast/rat_cast to natCast/intCast/ratCast (#11486)

Now that I am defining NNRat.cast, I want a definitive answer to this naming issue. Plenty of lemmas in mathlib already use natCast/intCast/ratCast over nat_cast/int_cast/rat_cast, and this matches with the general expectation that underscore-separated name parts correspond to a single declaration.

Diff
@@ -41,8 +41,8 @@ namespace Int
 
 /-- `ℤ` modulo multiples of `n : ℕ` is `ZMod n`. -/
 def quotientZMultiplesNatEquivZMod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
-  (quotientAddEquivOfEq (ZMod.ker_int_castAddHom _)).symm.trans <|
-    quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) cast int_cast_zmod_cast
+  (quotientAddEquivOfEq (ZMod.ker_intCastAddHom _)).symm.trans <|
+    quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) cast intCast_zmod_cast
 #align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZMultiplesNatEquivZMod
 
 /-- `ℤ` modulo multiples of `a : ℤ` is `ZMod a.nat_abs`. -/
@@ -52,9 +52,9 @@ def quotientZMultiplesEquivZMod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃
 
 /-- `ℤ` modulo the ideal generated by `n : ℕ` is `ZMod n`. -/
 def quotientSpanNatEquivZMod : ℤ ⧸ Ideal.span {(n : ℤ)} ≃+* ZMod n :=
-  (Ideal.quotEquivOfEq (ZMod.ker_int_castRingHom _)).symm.trans <|
+  (Ideal.quotEquivOfEq (ZMod.ker_intCastRingHom _)).symm.trans <|
     RingHom.quotientKerEquivOfRightInverse <|
-      show Function.RightInverse ZMod.cast (Int.castRingHom (ZMod n)) from int_cast_zmod_cast
+      show Function.RightInverse ZMod.cast (Int.castRingHom (ZMod n)) from intCast_zmod_cast
 #align int.quotient_span_nat_equiv_zmod Int.quotientSpanNatEquivZMod
 
 /-- `ℤ` modulo the ideal generated by `a : ℤ` is `ZMod a.nat_abs`. -/
@@ -159,7 +159,7 @@ theorem orbitZPowersEquiv_symm_apply (k : ZMod (minimalPeriod (a • ·) b)) :
 theorem orbitZPowersEquiv_symm_apply' (k : ℤ) :
     (orbitZPowersEquiv a b).symm k =
       (⟨a, mem_zpowers a⟩ : zpowers a) ^ k • ⟨b, mem_orbit_self b⟩ := by
-  rw [orbitZPowersEquiv_symm_apply, ZMod.coe_int_cast]
+  rw [orbitZPowersEquiv_symm_apply, ZMod.coe_intCast]
   exact Subtype.ext (zpow_smul_mod_minimalPeriod _ _ k)
 #align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZPowersEquiv_symm_apply'
 
@@ -167,7 +167,7 @@ theorem _root_.AddAction.orbitZMultiplesEquiv_symm_apply' {α β : Type*} [AddGr
     [AddAction α β] (b : β) (k : ℤ) :
     (AddAction.orbitZMultiplesEquiv a b).symm k =
       k • (⟨a, mem_zmultiples a⟩ : zmultiples a) +ᵥ ⟨b, AddAction.mem_orbit_self b⟩ := by
-  rw [AddAction.orbitZMultiplesEquiv_symm_apply, ZMod.coe_int_cast]
+  rw [AddAction.orbitZMultiplesEquiv_symm_apply, ZMod.coe_intCast]
   -- Porting note: times out without `a b` explicit
   exact Subtype.ext (zsmul_vadd_mod_minimalPeriod a b k)
 #align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZMultiplesEquiv_symm_apply'
chore: Rename zpow_coe_nat to zpow_natCast (#11528)

... and add a deprecated alias for the old name. This is mostly just me discovering the power of F2

Diff
@@ -92,7 +92,7 @@ noncomputable def zmultiplesQuotientStabilizerEquiv :
   (ofBijective
           (map _ (stabilizer (zmultiples a) b) (zmultiplesHom (zmultiples a) ⟨a, mem_zmultiples a⟩)
             (by
-              rw [zmultiples_le, mem_comap, mem_stabilizer_iff, zmultiplesHom_apply, coe_nat_zsmul]
+              rw [zmultiples_le, mem_comap, mem_stabilizer_iff, zmultiplesHom_apply, natCast_zsmul]
               simp_rw [← vadd_iterate]
               exact isPeriodicPt_minimalPeriod (a +ᵥ ·) b))
           ⟨by
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
@@ -168,7 +168,7 @@ theorem _root_.AddAction.orbitZMultiplesEquiv_symm_apply' {α β : Type*} [AddGr
     (AddAction.orbitZMultiplesEquiv a b).symm k =
       k • (⟨a, mem_zmultiples a⟩ : zmultiples a) +ᵥ ⟨b, AddAction.mem_orbit_self b⟩ := by
   rw [AddAction.orbitZMultiplesEquiv_symm_apply, ZMod.coe_int_cast]
-  -- porting note: times out without `a b` explicit
+  -- Porting note: times out without `a b` explicit
   exact Subtype.ext (zsmul_vadd_mod_minimalPeriod a b k)
 #align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZMultiplesEquiv_symm_apply'
 
@@ -178,7 +178,7 @@ attribute [to_additive existing]
 @[to_additive]
 theorem minimalPeriod_eq_card [Fintype (orbit (zpowers a) b)] :
     minimalPeriod (a • ·) b = Fintype.card (orbit (zpowers a) b) := by
-  -- porting note: added `(_)` to find `Fintype` by unification
+  -- Porting note: added `(_)` to find `Fintype` by unification
   rw [← Fintype.ofEquiv_card (orbitZPowersEquiv a b), @ZMod.card _ (_)]
 #align mul_action.minimal_period_eq_card MulAction.minimalPeriod_eq_card
 #align add_action.minimal_period_eq_card AddAction.minimalPeriod_eq_card
add two to_additive name translations (#10831)
  • Remove manual translations that are now guessed correctly
  • Fix some names that were incorrectly guessed by humans (and in one case fix the multiplicative name). Add deprecations for all name changes.
  • Remove a couple manually additivized lemmas.
Diff
@@ -144,15 +144,17 @@ noncomputable def _root_.AddAction.orbitZMultiplesEquiv {α β : Type*} [AddGrou
     (zmultiplesQuotientStabilizerEquiv a b).toEquiv
 #align add_action.orbit_zmultiples_equiv AddAction.orbitZMultiplesEquiv
 
-attribute [to_additive existing AddAction.orbitZMultiplesEquiv] orbitZPowersEquiv
+attribute [to_additive existing] orbitZPowersEquiv
 
-@[to_additive orbit_zmultiples_equiv_symm_apply]
+@[to_additive]
 theorem orbitZPowersEquiv_symm_apply (k : ZMod (minimalPeriod (a • ·) b)) :
     (orbitZPowersEquiv a b).symm k =
       (⟨a, mem_zpowers a⟩ : zpowers a) ^ (cast k : ℤ) • ⟨b, mem_orbit_self b⟩ :=
   rfl
 #align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZPowersEquiv_symm_apply
-#align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbit_zmultiples_equiv_symm_apply
+#align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbitZMultiplesEquiv_symm_apply
+/- 2024-02-21 -/ @[deprecated] alias _root_.AddAction.orbit_zmultiples_equiv_symm_apply :=
+  orbitZMultiplesEquiv_symm_apply
 
 theorem orbitZPowersEquiv_symm_apply' (k : ℤ) :
     (orbitZPowersEquiv a b).symm k =
@@ -165,12 +167,12 @@ theorem _root_.AddAction.orbitZMultiplesEquiv_symm_apply' {α β : Type*} [AddGr
     [AddAction α β] (b : β) (k : ℤ) :
     (AddAction.orbitZMultiplesEquiv a b).symm k =
       k • (⟨a, mem_zmultiples a⟩ : zmultiples a) +ᵥ ⟨b, AddAction.mem_orbit_self b⟩ := by
-  rw [AddAction.orbit_zmultiples_equiv_symm_apply, ZMod.coe_int_cast]
+  rw [AddAction.orbitZMultiplesEquiv_symm_apply, ZMod.coe_int_cast]
   -- porting note: times out without `a b` explicit
   exact Subtype.ext (zsmul_vadd_mod_minimalPeriod a b k)
 #align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZMultiplesEquiv_symm_apply'
 
-attribute [to_additive existing AddAction.orbitZMultiplesEquiv_symm_apply']
+attribute [to_additive existing]
   orbitZPowersEquiv_symm_apply'
 
 @[to_additive]
@@ -201,7 +203,7 @@ open Subgroup
 variable {α : Type*} [Group α] (a : α)
 
 /-- See also `Fintype.card_zpowers`. -/
-@[to_additive (attr := simp) Nat.card_zmultiples "See also `Fintype.card_zmultiples`."]
+@[to_additive (attr := simp) "See also `Fintype.card_zmultiples`."]
 theorem Nat.card_zpowers : Nat.card (zpowers a) = orderOf a := by
   have := Nat.card_congr (MulAction.orbitZPowersEquiv a (1 : α))
   rwa [Nat.card_zmod, orbit_subgroup_one_eq_self] at this
@@ -210,15 +212,15 @@ theorem Nat.card_zpowers : Nat.card (zpowers a) = orderOf a := by
 
 variable {a}
 
-@[to_additive (attr := simp) finite_zmultiples]
+@[to_additive (attr := simp)]
 lemma finite_zpowers : (zpowers a : Set α).Finite ↔ IsOfFinOrder a := by
   simp only [← orderOf_pos_iff, ← Nat.card_zpowers, Nat.card_pos_iff, ← SetLike.coe_sort_coe,
     nonempty_coe_sort, Nat.card_pos_iff, Set.finite_coe_iff, Subgroup.coe_nonempty, true_and]
 
-@[to_additive (attr := simp) infinite_zmultiples]
+@[to_additive (attr := simp)]
 lemma infinite_zpowers : (zpowers a : Set α).Infinite ↔ ¬IsOfFinOrder a := finite_zpowers.not
 
-@[to_additive IsOfFinAddOrder.finite_zmultiples]
+@[to_additive]
 protected alias ⟨_, IsOfFinOrder.finite_zpowers⟩ := finite_zpowers
 #align is_of_fin_order.finite_zpowers IsOfFinOrder.finite_zpowers
 #align is_of_fin_add_order.finite_zmultiples IsOfFinAddOrder.finite_zmultiples
refactor: Delete Algebra.GroupPower.Lemmas (#9411)

Algebra.GroupPower.Lemmas used to be a big bag of lemmas that made it there on the criterion that they needed "more imports". This was completely untrue, as all lemmas could be moved to earlier files in PRs:

There are several reasons for this:

  • Necessary lemmas have been moved to earlier files since lemmas were dumped in Algebra.GroupPower.Lemmas
  • In the Lean 3 → Lean 4 transition, Std acquired basic Int and Nat lemmas which let us shortcircuit the part of the algebraic order hierarchy on which the corresponding general lemmas rest
  • Some proofs were overpowered
  • Some earlier files were tangled and I have untangled them

This PR finishes the job by moving the last few lemmas out of Algebra.GroupPower.Lemmas, which is therefore deleted.

Diff
@@ -4,7 +4,6 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
 -/
 import Mathlib.Algebra.Group.Equiv.TypeTags
-import Mathlib.Algebra.GroupPower.Lemmas
 import Mathlib.Data.ZMod.Basic
 import Mathlib.GroupTheory.GroupAction.Quotient
 import Mathlib.RingTheory.Ideal.QuotientOperations
refactor(ZMod): remove coe out of ZMod (#9839)

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Vierkantor <vierkantor@vierkantor.com>

Diff
@@ -43,7 +43,7 @@ namespace Int
 /-- `ℤ` modulo multiples of `n : ℕ` is `ZMod n`. -/
 def quotientZMultiplesNatEquivZMod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
   (quotientAddEquivOfEq (ZMod.ker_int_castAddHom _)).symm.trans <|
-    quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) (↑) int_cast_zmod_cast
+    quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) cast int_cast_zmod_cast
 #align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZMultiplesNatEquivZMod
 
 /-- `ℤ` modulo multiples of `a : ℤ` is `ZMod a.nat_abs`. -/
@@ -55,7 +55,7 @@ def quotientZMultiplesEquivZMod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃
 def quotientSpanNatEquivZMod : ℤ ⧸ Ideal.span {(n : ℤ)} ≃+* ZMod n :=
   (Ideal.quotEquivOfEq (ZMod.ker_int_castRingHom _)).symm.trans <|
     RingHom.quotientKerEquivOfRightInverse <|
-      show Function.RightInverse (↑) (Int.castRingHom (ZMod n)) from int_cast_zmod_cast
+      show Function.RightInverse ZMod.cast (Int.castRingHom (ZMod n)) from int_cast_zmod_cast
 #align int.quotient_span_nat_equiv_zmod Int.quotientSpanNatEquivZMod
 
 /-- `ℤ` modulo the ideal generated by `a : ℤ` is `ZMod a.nat_abs`. -/
@@ -108,7 +108,7 @@ noncomputable def zmultiplesQuotientStabilizerEquiv :
 
 theorem zmultiplesQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod (a +ᵥ ·) b)) :
     (zmultiplesQuotientStabilizerEquiv a b).symm n =
-      (n : ℤ) • (⟨a, mem_zmultiples a⟩ : zmultiples a) :=
+      (cast n : ℤ) • (⟨a, mem_zmultiples a⟩ : zmultiples a) :=
   rfl
 #align add_action.zmultiples_quotient_stabilizer_equiv_symm_apply AddAction.zmultiplesQuotientStabilizerEquiv_symm_apply
 
@@ -128,7 +128,7 @@ noncomputable def zpowersQuotientStabilizerEquiv :
 #align mul_action.zpowers_quotient_stabilizer_equiv MulAction.zpowersQuotientStabilizerEquiv
 
 theorem zpowersQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod (a • ·) b)) :
-    (zpowersQuotientStabilizerEquiv a b).symm n = (⟨a, mem_zpowers a⟩ : zpowers a) ^ (n : ℤ) :=
+    (zpowersQuotientStabilizerEquiv a b).symm n = (⟨a, mem_zpowers a⟩ : zpowers a) ^ (cast n : ℤ) :=
   rfl
 #align mul_action.zpowers_quotient_stabilizer_equiv_symm_apply MulAction.zpowersQuotientStabilizerEquiv_symm_apply
 
@@ -150,7 +150,7 @@ attribute [to_additive existing AddAction.orbitZMultiplesEquiv] orbitZPowersEqui
 @[to_additive orbit_zmultiples_equiv_symm_apply]
 theorem orbitZPowersEquiv_symm_apply (k : ZMod (minimalPeriod (a • ·) b)) :
     (orbitZPowersEquiv a b).symm k =
-      (⟨a, mem_zpowers a⟩ : zpowers a) ^ (k : ℤ) • ⟨b, mem_orbit_self b⟩ :=
+      (⟨a, mem_zpowers a⟩ : zpowers a) ^ (cast k : ℤ) • ⟨b, mem_orbit_self b⟩ :=
   rfl
 #align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZPowersEquiv_symm_apply
 #align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbit_zmultiples_equiv_symm_apply
chore: reduce imports (#9830)

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

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

Diff
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
 -/
 import Mathlib.Algebra.Group.Equiv.TypeTags
+import Mathlib.Algebra.GroupPower.Lemmas
 import Mathlib.Data.ZMod.Basic
 import Mathlib.GroupTheory.GroupAction.Quotient
 import Mathlib.RingTheory.Ideal.QuotientOperations
refactor: Use Pairwise wherever possible (#9236)

Performed with a regex search for ∀ (.) (.), \1 ≠ \2 →, and a few variants to catch implicit binders and explicit types.

I have deliberately avoided trying to make the analogous Set.Pairwise transformation (or any Pairwise (foo on bar) transformations) in this PR, to keep the diff small.

Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>

Diff
@@ -70,9 +70,9 @@ open BigOperators Ideal
 /-- The **Chinese remainder theorem**, elementary version for `ZMod`. See also
 `Mathlib.Data.ZMod.Basic` for versions involving only two numbers. -/
 def ZMod.prodEquivPi {ι : Type*} [Fintype ι] (a : ι → ℕ)
-    (coprime : ∀ i j, i ≠ j → Nat.Coprime (a i) (a j)) : ZMod (∏ i, a i) ≃+* ∀ i, ZMod (a i) :=
-  have : ∀ (i j : ι), i ≠ j → IsCoprime (span {(a i : ℤ)}) (span {(a j : ℤ)}) :=
-    fun i j h ↦ (isCoprime_span_singleton_iff _ _).mpr ((coprime i j h).cast (R := ℤ))
+    (coprime : Pairwise fun i j => Nat.Coprime (a i) (a j)) : ZMod (∏ i, a i) ≃+* ∀ i, ZMod (a i) :=
+  have : Pairwise fun i j => IsCoprime (span {(a i : ℤ)}) (span {(a j : ℤ)}) :=
+    fun _i _j h ↦ (isCoprime_span_singleton_iff _ _).mpr ((coprime h).cast (R := ℤ))
   Int.quotientSpanNatEquivZMod _ |>.symm.trans <|
   quotEquivOfEq (iInf_span_singleton_natCast (R := ℤ) coprime) |>.symm.trans <|
   quotientInfRingEquivPiQuotient _ this |>.trans <|
chore: Nsmul -> NSMul, Zpow -> ZPow, etc (#9067)

Normalising to naming convention rule number 6.

Diff
@@ -20,7 +20,7 @@ This file relates `ZMod n` to the quotient group
 
 ## Main definitions
 
- - `ZMod.quotientZmultiplesNatEquivZMod` and `ZMod.quotientZmultiplesEquivZMod`:
+ - `ZMod.quotientZMultiplesNatEquivZMod` and `ZMod.quotientZMultiplesEquivZMod`:
    `ZMod n` is the group quotient of `ℤ` by `n ℤ := AddSubgroup.zmultiples (n)`,
    (where `n : ℕ` and `n : ℤ` respectively)
  - `ZMod.quotient_span_nat_equiv_zmod` and `ZMod.quotientSpanEquivZMod `:
@@ -40,15 +40,15 @@ variable (n : ℕ) {A R : Type*} [AddGroup A] [Ring R]
 namespace Int
 
 /-- `ℤ` modulo multiples of `n : ℕ` is `ZMod n`. -/
-def quotientZmultiplesNatEquivZMod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
+def quotientZMultiplesNatEquivZMod : ℤ ⧸ AddSubgroup.zmultiples (n : ℤ) ≃+ ZMod n :=
   (quotientAddEquivOfEq (ZMod.ker_int_castAddHom _)).symm.trans <|
     quotientKerEquivOfRightInverse (Int.castAddHom (ZMod n)) (↑) int_cast_zmod_cast
-#align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZmultiplesNatEquivZMod
+#align int.quotient_zmultiples_nat_equiv_zmod Int.quotientZMultiplesNatEquivZMod
 
 /-- `ℤ` modulo multiples of `a : ℤ` is `ZMod a.nat_abs`. -/
-def quotientZmultiplesEquivZMod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃+ ZMod a.natAbs :=
-  (quotientAddEquivOfEq (zmultiples_natAbs a)).symm.trans (quotientZmultiplesNatEquivZMod a.natAbs)
-#align int.quotient_zmultiples_equiv_zmod Int.quotientZmultiplesEquivZMod
+def quotientZMultiplesEquivZMod (a : ℤ) : ℤ ⧸ AddSubgroup.zmultiples a ≃+ ZMod a.natAbs :=
+  (quotientAddEquivOfEq (zmultiples_natAbs a)).symm.trans (quotientZMultiplesNatEquivZMod a.natAbs)
+#align int.quotient_zmultiples_equiv_zmod Int.quotientZMultiplesEquivZMod
 
 /-- `ℤ` modulo the ideal generated by `n : ℕ` is `ZMod n`. -/
 def quotientSpanNatEquivZMod : ℤ ⧸ Ideal.span {(n : ℤ)} ≃+* ZMod n :=
@@ -102,7 +102,7 @@ noncomputable def zmultiplesQuotientStabilizerEquiv :
               zsmul_vadd_eq_iff_minimalPeriod_dvd]
             exact (eq_zero_iff _).mp hn, fun q =>
             induction_on' q fun ⟨_, n, rfl⟩ => ⟨n, rfl⟩⟩).symm.trans
-    (Int.quotientZmultiplesNatEquivZMod (minimalPeriod (a +ᵥ ·) b))
+    (Int.quotientZMultiplesNatEquivZMod (minimalPeriod (a +ᵥ ·) b))
 #align add_action.zmultiples_quotient_stabilizer_equiv AddAction.zmultiplesQuotientStabilizerEquiv
 
 theorem zmultiplesQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod (a +ᵥ ·) b)) :
@@ -132,52 +132,52 @@ theorem zpowersQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod (a 
 #align mul_action.zpowers_quotient_stabilizer_equiv_symm_apply MulAction.zpowersQuotientStabilizerEquiv_symm_apply
 
 /-- The orbit `(a ^ ℤ) • b` is a cycle of order `minimalPeriod ((•) a) b`. -/
-noncomputable def orbitZpowersEquiv : orbit (zpowers a) b ≃ ZMod (minimalPeriod (a • ·) b) :=
+noncomputable def orbitZPowersEquiv : orbit (zpowers a) b ≃ ZMod (minimalPeriod (a • ·) b) :=
   (orbitEquivQuotientStabilizer _ b).trans (zpowersQuotientStabilizerEquiv a b).toEquiv
-#align mul_action.orbit_zpowers_equiv MulAction.orbitZpowersEquiv
+#align mul_action.orbit_zpowers_equiv MulAction.orbitZPowersEquiv
 
 /-- The orbit `(ℤ • a) +ᵥ b` is a cycle of order `minimalPeriod (a +ᵥ ·) b`. -/
-noncomputable def _root_.AddAction.orbitZmultiplesEquiv {α β : Type*} [AddGroup α] (a : α)
+noncomputable def _root_.AddAction.orbitZMultiplesEquiv {α β : Type*} [AddGroup α] (a : α)
     [AddAction α β] (b : β) :
     AddAction.orbit (zmultiples a) b ≃ ZMod (minimalPeriod (a +ᵥ ·) b) :=
   (AddAction.orbitEquivQuotientStabilizer (zmultiples a) b).trans
     (zmultiplesQuotientStabilizerEquiv a b).toEquiv
-#align add_action.orbit_zmultiples_equiv AddAction.orbitZmultiplesEquiv
+#align add_action.orbit_zmultiples_equiv AddAction.orbitZMultiplesEquiv
 
-attribute [to_additive existing AddAction.orbitZmultiplesEquiv] orbitZpowersEquiv
+attribute [to_additive existing AddAction.orbitZMultiplesEquiv] orbitZPowersEquiv
 
 @[to_additive orbit_zmultiples_equiv_symm_apply]
-theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod (a • ·) b)) :
-    (orbitZpowersEquiv a b).symm k =
+theorem orbitZPowersEquiv_symm_apply (k : ZMod (minimalPeriod (a • ·) b)) :
+    (orbitZPowersEquiv a b).symm k =
       (⟨a, mem_zpowers a⟩ : zpowers a) ^ (k : ℤ) • ⟨b, mem_orbit_self b⟩ :=
   rfl
-#align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZpowersEquiv_symm_apply
+#align mul_action.orbit_zpowers_equiv_symm_apply MulAction.orbitZPowersEquiv_symm_apply
 #align add_action.orbit_zmultiples_equiv_symm_apply AddAction.orbit_zmultiples_equiv_symm_apply
 
-theorem orbitZpowersEquiv_symm_apply' (k : ℤ) :
-    (orbitZpowersEquiv a b).symm k =
+theorem orbitZPowersEquiv_symm_apply' (k : ℤ) :
+    (orbitZPowersEquiv a b).symm k =
       (⟨a, mem_zpowers a⟩ : zpowers a) ^ k • ⟨b, mem_orbit_self b⟩ := by
-  rw [orbitZpowersEquiv_symm_apply, ZMod.coe_int_cast]
+  rw [orbitZPowersEquiv_symm_apply, ZMod.coe_int_cast]
   exact Subtype.ext (zpow_smul_mod_minimalPeriod _ _ k)
-#align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZpowersEquiv_symm_apply'
+#align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZPowersEquiv_symm_apply'
 
-theorem _root_.AddAction.orbitZmultiplesEquiv_symm_apply' {α β : Type*} [AddGroup α] (a : α)
+theorem _root_.AddAction.orbitZMultiplesEquiv_symm_apply' {α β : Type*} [AddGroup α] (a : α)
     [AddAction α β] (b : β) (k : ℤ) :
-    (AddAction.orbitZmultiplesEquiv a b).symm k =
+    (AddAction.orbitZMultiplesEquiv a b).symm k =
       k • (⟨a, mem_zmultiples a⟩ : zmultiples a) +ᵥ ⟨b, AddAction.mem_orbit_self b⟩ := by
   rw [AddAction.orbit_zmultiples_equiv_symm_apply, ZMod.coe_int_cast]
   -- porting note: times out without `a b` explicit
   exact Subtype.ext (zsmul_vadd_mod_minimalPeriod a b k)
-#align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZmultiplesEquiv_symm_apply'
+#align add_action.orbit_zmultiples_equiv_symm_apply' AddAction.orbitZMultiplesEquiv_symm_apply'
 
-attribute [to_additive existing AddAction.orbitZmultiplesEquiv_symm_apply']
-  orbitZpowersEquiv_symm_apply'
+attribute [to_additive existing AddAction.orbitZMultiplesEquiv_symm_apply']
+  orbitZPowersEquiv_symm_apply'
 
 @[to_additive]
 theorem minimalPeriod_eq_card [Fintype (orbit (zpowers a) b)] :
     minimalPeriod (a • ·) b = Fintype.card (orbit (zpowers a) b) := by
   -- porting note: added `(_)` to find `Fintype` by unification
-  rw [← Fintype.ofEquiv_card (orbitZpowersEquiv a b), @ZMod.card _ (_)]
+  rw [← Fintype.ofEquiv_card (orbitZPowersEquiv a b), @ZMod.card _ (_)]
 #align mul_action.minimal_period_eq_card MulAction.minimalPeriod_eq_card
 #align add_action.minimal_period_eq_card AddAction.minimalPeriod_eq_card
 
@@ -203,7 +203,7 @@ variable {α : Type*} [Group α] (a : α)
 /-- See also `Fintype.card_zpowers`. -/
 @[to_additive (attr := simp) Nat.card_zmultiples "See also `Fintype.card_zmultiples`."]
 theorem Nat.card_zpowers : Nat.card (zpowers a) = orderOf a := by
-  have := Nat.card_congr (MulAction.orbitZpowersEquiv a (1 : α))
+  have := Nat.card_congr (MulAction.orbitZPowersEquiv a (1 : α))
   rwa [Nat.card_zmod, orbit_subgroup_one_eq_self] at this
 #align order_eq_card_zpowers' Nat.card_zpowersₓ
 #align add_order_eq_card_zmultiples' Nat.card_zmultiplesₓ
chore: Replace (· op ·) a by (a op ·) (#8843)

I used the regex \(\(· (.) ·\) (.)\), replacing with ($2 $1 ·).

Diff
@@ -86,15 +86,15 @@ open AddSubgroup AddMonoidHom AddEquiv Function
 
 variable {α β : Type*} [AddGroup α] (a : α) [AddAction α β] (b : β)
 
-/-- The quotient `(ℤ ∙ a) ⧸ (stabilizer b)` is cyclic of order `minimalPeriod ((+ᵥ) a) b`. -/
+/-- The quotient `(ℤ ∙ a) ⧸ (stabilizer b)` is cyclic of order `minimalPeriod (a +ᵥ ·) b`. -/
 noncomputable def zmultiplesQuotientStabilizerEquiv :
-    zmultiples a ⧸ stabilizer (zmultiples a) b ≃+ ZMod (minimalPeriod ((· +ᵥ ·) a) b) :=
+    zmultiples a ⧸ stabilizer (zmultiples a) b ≃+ ZMod (minimalPeriod (a +ᵥ ·) b) :=
   (ofBijective
           (map _ (stabilizer (zmultiples a) b) (zmultiplesHom (zmultiples a) ⟨a, mem_zmultiples a⟩)
             (by
               rw [zmultiples_le, mem_comap, mem_stabilizer_iff, zmultiplesHom_apply, coe_nat_zsmul]
               simp_rw [← vadd_iterate]
-              exact isPeriodicPt_minimalPeriod ((· +ᵥ ·) a) b))
+              exact isPeriodicPt_minimalPeriod (a +ᵥ ·) b))
           ⟨by
             rw [← ker_eq_bot_iff, eq_bot_iff]
             refine' fun q => induction_on' q fun n hn => _
@@ -102,10 +102,10 @@ noncomputable def zmultiplesQuotientStabilizerEquiv :
               zsmul_vadd_eq_iff_minimalPeriod_dvd]
             exact (eq_zero_iff _).mp hn, fun q =>
             induction_on' q fun ⟨_, n, rfl⟩ => ⟨n, rfl⟩⟩).symm.trans
-    (Int.quotientZmultiplesNatEquivZMod (minimalPeriod ((· +ᵥ ·) a) b))
+    (Int.quotientZmultiplesNatEquivZMod (minimalPeriod (a +ᵥ ·) b))
 #align add_action.zmultiples_quotient_stabilizer_equiv AddAction.zmultiplesQuotientStabilizerEquiv
 
-theorem zmultiplesQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod ((· +ᵥ ·) a) b)) :
+theorem zmultiplesQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod (a +ᵥ ·) b)) :
     (zmultiplesQuotientStabilizerEquiv a b).symm n =
       (n : ℤ) • (⟨a, mem_zmultiples a⟩ : zmultiples a) :=
   rfl
@@ -121,25 +121,25 @@ variable {α β : Type*} [Group α] (a : α) [MulAction α β] (b : β)
 
 /-- The quotient `(a ^ ℤ) ⧸ (stabilizer b)` is cyclic of order `minimalPeriod ((•) a) b`. -/
 noncomputable def zpowersQuotientStabilizerEquiv :
-    zpowers a ⧸ stabilizer (zpowers a) b ≃* Multiplicative (ZMod (minimalPeriod ((· • ·) a) b)) :=
+    zpowers a ⧸ stabilizer (zpowers a) b ≃* Multiplicative (ZMod (minimalPeriod (a • ·) b)) :=
   letI f := zmultiplesQuotientStabilizerEquiv (Additive.ofMul a) b
   AddEquiv.toMultiplicative f
 #align mul_action.zpowers_quotient_stabilizer_equiv MulAction.zpowersQuotientStabilizerEquiv
 
-theorem zpowersQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod ((· • ·) a) b)) :
+theorem zpowersQuotientStabilizerEquiv_symm_apply (n : ZMod (minimalPeriod (a • ·) b)) :
     (zpowersQuotientStabilizerEquiv a b).symm n = (⟨a, mem_zpowers a⟩ : zpowers a) ^ (n : ℤ) :=
   rfl
 #align mul_action.zpowers_quotient_stabilizer_equiv_symm_apply MulAction.zpowersQuotientStabilizerEquiv_symm_apply
 
 /-- The orbit `(a ^ ℤ) • b` is a cycle of order `minimalPeriod ((•) a) b`. -/
-noncomputable def orbitZpowersEquiv : orbit (zpowers a) b ≃ ZMod (minimalPeriod ((· • ·) a) b) :=
+noncomputable def orbitZpowersEquiv : orbit (zpowers a) b ≃ ZMod (minimalPeriod (a • ·) b) :=
   (orbitEquivQuotientStabilizer _ b).trans (zpowersQuotientStabilizerEquiv a b).toEquiv
 #align mul_action.orbit_zpowers_equiv MulAction.orbitZpowersEquiv
 
-/-- The orbit `(ℤ • a) +ᵥ b` is a cycle of order `minimalPeriod ((+ᵥ) a) b`. -/
+/-- The orbit `(ℤ • a) +ᵥ b` is a cycle of order `minimalPeriod (a +ᵥ ·) b`. -/
 noncomputable def _root_.AddAction.orbitZmultiplesEquiv {α β : Type*} [AddGroup α] (a : α)
     [AddAction α β] (b : β) :
-    AddAction.orbit (zmultiples a) b ≃ ZMod (minimalPeriod ((· +ᵥ ·) a) b) :=
+    AddAction.orbit (zmultiples a) b ≃ ZMod (minimalPeriod (a +ᵥ ·) b) :=
   (AddAction.orbitEquivQuotientStabilizer (zmultiples a) b).trans
     (zmultiplesQuotientStabilizerEquiv a b).toEquiv
 #align add_action.orbit_zmultiples_equiv AddAction.orbitZmultiplesEquiv
@@ -147,7 +147,7 @@ noncomputable def _root_.AddAction.orbitZmultiplesEquiv {α β : Type*} [AddGrou
 attribute [to_additive existing AddAction.orbitZmultiplesEquiv] orbitZpowersEquiv
 
 @[to_additive orbit_zmultiples_equiv_symm_apply]
-theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod ((· • ·) a) b)) :
+theorem orbitZpowersEquiv_symm_apply (k : ZMod (minimalPeriod (a • ·) b)) :
     (orbitZpowersEquiv a b).symm k =
       (⟨a, mem_zpowers a⟩ : zpowers a) ^ (k : ℤ) • ⟨b, mem_orbit_self b⟩ :=
   rfl
@@ -175,7 +175,7 @@ attribute [to_additive existing AddAction.orbitZmultiplesEquiv_symm_apply']
 
 @[to_additive]
 theorem minimalPeriod_eq_card [Fintype (orbit (zpowers a) b)] :
-    minimalPeriod ((· • ·) a) b = Fintype.card (orbit (zpowers a) b) := by
+    minimalPeriod (a • ·) b = Fintype.card (orbit (zpowers a) b) := by
   -- porting note: added `(_)` to find `Fintype` by unification
   rw [← Fintype.ofEquiv_card (orbitZpowersEquiv a b), @ZMod.card _ (_)]
 #align mul_action.minimal_period_eq_card MulAction.minimalPeriod_eq_card
@@ -183,7 +183,7 @@ theorem minimalPeriod_eq_card [Fintype (orbit (zpowers a) b)] :
 
 @[to_additive]
 instance minimalPeriod_pos [Finite <| orbit (zpowers a) b] :
-    NeZero <| minimalPeriod ((· • ·) a) b :=
+    NeZero <| minimalPeriod (a • ·) b :=
   ⟨by
     cases nonempty_fintype (orbit (zpowers a) b)
     haveI : Nonempty (orbit (zpowers a) b) := (orbit_nonempty b).to_subtype
feat: Minimum torsion of a group (#8411)

This PR define Monoid.minOrder α, the minimum order of an element of the monoid α. This is also the minimum size of a nontrivial subgroup.

Diff
@@ -201,7 +201,7 @@ open Subgroup
 variable {α : Type*} [Group α] (a : α)
 
 /-- See also `Fintype.card_zpowers`. -/
-@[to_additive Nat.card_zmultiples "See also `Fintype.card_zmultiples`."]
+@[to_additive (attr := simp) Nat.card_zmultiples "See also `Fintype.card_zmultiples`."]
 theorem Nat.card_zpowers : Nat.card (zpowers a) = orderOf a := by
   have := Nat.card_congr (MulAction.orbitZpowersEquiv a (1 : α))
   rwa [Nat.card_zmod, orbit_subgroup_one_eq_self] at this
feat: Order of elements of a subgroup (#8385)

The cardinality of a subgroup is greater than the order of any of its elements.

Rename

  • order_eq_card_zpowersFintype.card_zpowers
  • order_eq_card_zpowers'Nat.card_zpowers (and turn it around to match Nat.card_subgroupPowers)
  • Submonoid.powers_subsetSubmonoid.powers_le
  • orderOf_dvd_card_univorderOf_dvd_card
  • orderOf_subgroupSubgroup.orderOf
  • Subgroup.nonemptySubgroup.coe_nonempty
Diff
@@ -33,10 +33,7 @@ This file relates `ZMod n` to the quotient group
 zmod, quotient group, quotient ring, ideal quotient
 -/
 
-
-open QuotientAddGroup
-
-open ZMod
+open QuotientAddGroup Set ZMod
 
 variable (n : ℕ) {A R : Type*} [AddGroup A] [Ring R]
 
@@ -203,20 +200,26 @@ open Subgroup
 
 variable {α : Type*} [Group α] (a : α)
 
-/-- See also `orderOf_eq_card_zpowers`. -/
-@[to_additive add_order_eq_card_zmultiples' "See also `add_order_eq_card_zmultiples`."]
-theorem order_eq_card_zpowers' : orderOf a = Nat.card (zpowers a) := by
+/-- See also `Fintype.card_zpowers`. -/
+@[to_additive Nat.card_zmultiples "See also `Fintype.card_zmultiples`."]
+theorem Nat.card_zpowers : Nat.card (zpowers a) = orderOf a := by
   have := Nat.card_congr (MulAction.orbitZpowersEquiv a (1 : α))
-  rwa [Nat.card_zmod, orbit_subgroup_one_eq_self, eq_comm] at this
-#align order_eq_card_zpowers' order_eq_card_zpowers'
-#align add_order_eq_card_zmultiples' add_order_eq_card_zmultiples'
+  rwa [Nat.card_zmod, orbit_subgroup_one_eq_self] at this
+#align order_eq_card_zpowers' Nat.card_zpowersₓ
+#align add_order_eq_card_zmultiples' Nat.card_zmultiplesₓ
 
 variable {a}
 
+@[to_additive (attr := simp) finite_zmultiples]
+lemma finite_zpowers : (zpowers a : Set α).Finite ↔ IsOfFinOrder a := by
+  simp only [← orderOf_pos_iff, ← Nat.card_zpowers, Nat.card_pos_iff, ← SetLike.coe_sort_coe,
+    nonempty_coe_sort, Nat.card_pos_iff, Set.finite_coe_iff, Subgroup.coe_nonempty, true_and]
+
+@[to_additive (attr := simp) infinite_zmultiples]
+lemma infinite_zpowers : (zpowers a : Set α).Infinite ↔ ¬IsOfFinOrder a := finite_zpowers.not
+
 @[to_additive IsOfFinAddOrder.finite_zmultiples]
-theorem IsOfFinOrder.finite_zpowers (h : IsOfFinOrder a) : Finite <| zpowers a := by
-  rw [← orderOf_pos_iff, order_eq_card_zpowers'] at h
-  exact Nat.finite_of_card_ne_zero h.ne.symm
+protected alias ⟨_, IsOfFinOrder.finite_zpowers⟩ := finite_zpowers
 #align is_of_fin_order.finite_zpowers IsOfFinOrder.finite_zpowers
 #align is_of_fin_add_order.finite_zmultiples IsOfFinAddOrder.finite_zmultiples
 
refactor(Algebra/Hom): transpose Hom and file name (#8095)

I believe the file defining a type of morphisms belongs alongside the file defining the structure this morphism works on. So I would like to reorganize the files in the Mathlib.Algebra.Hom folder so that e.g. Mathlib.Algebra.Hom.Ring becomes Mathlib.Algebra.Ring.Hom and Mathlib.Algebra.Hom.NonUnitalAlg becomes Mathlib.Algebra.Algebra.NonUnitalHom.

While fixing the imports I went ahead and sorted them for good luck.

The full list of changes is: renamed: Mathlib/Algebra/Hom/NonUnitalAlg.lean -> Mathlib/Algebra/Algebra/NonUnitalHom.lean renamed: Mathlib/Algebra/Hom/Aut.lean -> Mathlib/Algebra/Group/Aut.lean renamed: Mathlib/Algebra/Hom/Commute.lean -> Mathlib/Algebra/Group/Commute/Hom.lean renamed: Mathlib/Algebra/Hom/Embedding.lean -> Mathlib/Algebra/Group/Embedding.lean renamed: Mathlib/Algebra/Hom/Equiv/Basic.lean -> Mathlib/Algebra/Group/Equiv/Basic.lean renamed: Mathlib/Algebra/Hom/Equiv/TypeTags.lean -> Mathlib/Algebra/Group/Equiv/TypeTags.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/Basic.lean -> Mathlib/Algebra/Group/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean -> Mathlib/Algebra/GroupWithZero/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Freiman.lean -> Mathlib/Algebra/Group/Freiman.lean renamed: Mathlib/Algebra/Hom/Group/Basic.lean -> Mathlib/Algebra/Group/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Group/Defs.lean -> Mathlib/Algebra/Group/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/GroupAction.lean -> Mathlib/GroupTheory/GroupAction/Hom.lean renamed: Mathlib/Algebra/Hom/GroupInstances.lean -> Mathlib/Algebra/Group/Hom/Instances.lean renamed: Mathlib/Algebra/Hom/Iterate.lean -> Mathlib/Algebra/GroupPower/IterateHom.lean renamed: Mathlib/Algebra/Hom/Centroid.lean -> Mathlib/Algebra/Ring/CentroidHom.lean renamed: Mathlib/Algebra/Hom/Ring/Basic.lean -> Mathlib/Algebra/Ring/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Ring/Defs.lean -> Mathlib/Algebra/Ring/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/Units.lean -> Mathlib/Algebra/Group/Units/Hom.lean

Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Reorganizing.20.60Mathlib.2EAlgebra.2EHom.60

Diff
@@ -3,11 +3,11 @@ Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
 -/
+import Mathlib.Algebra.Group.Equiv.TypeTags
 import Mathlib.Data.ZMod.Basic
 import Mathlib.GroupTheory.GroupAction.Quotient
-import Mathlib.RingTheory.Int.Basic
 import Mathlib.RingTheory.Ideal.QuotientOperations
-import Mathlib.Algebra.Hom.Equiv.TypeTags
+import Mathlib.RingTheory.Int.Basic
 
 #align_import data.zmod.quotient from "leanprover-community/mathlib"@"da420a8c6dd5bdfb85c4ced85c34388f633bc6ff"
 
feat: Chinese remainder for ZMod. (#7599)
Diff
@@ -67,6 +67,22 @@ def quotientSpanEquivZMod (a : ℤ) : ℤ ⧸ Ideal.span ({a} : Set ℤ) ≃+* Z
 
 end Int
 
+noncomputable section ChineseRemainder
+open BigOperators Ideal
+
+/-- The **Chinese remainder theorem**, elementary version for `ZMod`. See also
+`Mathlib.Data.ZMod.Basic` for versions involving only two numbers. -/
+def ZMod.prodEquivPi {ι : Type*} [Fintype ι] (a : ι → ℕ)
+    (coprime : ∀ i j, i ≠ j → Nat.Coprime (a i) (a j)) : ZMod (∏ i, a i) ≃+* ∀ i, ZMod (a i) :=
+  have : ∀ (i j : ι), i ≠ j → IsCoprime (span {(a i : ℤ)}) (span {(a j : ℤ)}) :=
+    fun i j h ↦ (isCoprime_span_singleton_iff _ _).mpr ((coprime i j h).cast (R := ℤ))
+  Int.quotientSpanNatEquivZMod _ |>.symm.trans <|
+  quotEquivOfEq (iInf_span_singleton_natCast (R := ℤ) coprime) |>.symm.trans <|
+  quotientInfRingEquivPiQuotient _ this |>.trans <|
+  RingEquiv.piCongrRight fun i ↦ Int.quotientSpanNatEquivZMod (a i)
+
+end ChineseRemainder
+
 namespace AddAction
 
 open AddSubgroup AddMonoidHom AddEquiv Function
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
@@ -38,7 +38,7 @@ open QuotientAddGroup
 
 open ZMod
 
-variable (n : ℕ) {A R : Type _} [AddGroup A] [Ring R]
+variable (n : ℕ) {A R : Type*} [AddGroup A] [Ring R]
 
 namespace Int
 
@@ -71,7 +71,7 @@ namespace AddAction
 
 open AddSubgroup AddMonoidHom AddEquiv Function
 
-variable {α β : Type _} [AddGroup α] (a : α) [AddAction α β] (b : β)
+variable {α β : Type*} [AddGroup α] (a : α) [AddAction α β] (b : β)
 
 /-- The quotient `(ℤ ∙ a) ⧸ (stabilizer b)` is cyclic of order `minimalPeriod ((+ᵥ) a) b`. -/
 noncomputable def zmultiplesQuotientStabilizerEquiv :
@@ -104,7 +104,7 @@ namespace MulAction
 
 open AddAction Subgroup AddSubgroup Function
 
-variable {α β : Type _} [Group α] (a : α) [MulAction α β] (b : β)
+variable {α β : Type*} [Group α] (a : α) [MulAction α β] (b : β)
 
 /-- The quotient `(a ^ ℤ) ⧸ (stabilizer b)` is cyclic of order `minimalPeriod ((•) a) b`. -/
 noncomputable def zpowersQuotientStabilizerEquiv :
@@ -124,7 +124,7 @@ noncomputable def orbitZpowersEquiv : orbit (zpowers a) b ≃ ZMod (minimalPerio
 #align mul_action.orbit_zpowers_equiv MulAction.orbitZpowersEquiv
 
 /-- The orbit `(ℤ • a) +ᵥ b` is a cycle of order `minimalPeriod ((+ᵥ) a) b`. -/
-noncomputable def _root_.AddAction.orbitZmultiplesEquiv {α β : Type _} [AddGroup α] (a : α)
+noncomputable def _root_.AddAction.orbitZmultiplesEquiv {α β : Type*} [AddGroup α] (a : α)
     [AddAction α β] (b : β) :
     AddAction.orbit (zmultiples a) b ≃ ZMod (minimalPeriod ((· +ᵥ ·) a) b) :=
   (AddAction.orbitEquivQuotientStabilizer (zmultiples a) b).trans
@@ -148,7 +148,7 @@ theorem orbitZpowersEquiv_symm_apply' (k : ℤ) :
   exact Subtype.ext (zpow_smul_mod_minimalPeriod _ _ k)
 #align mul_action.orbit_zpowers_equiv_symm_apply' MulAction.orbitZpowersEquiv_symm_apply'
 
-theorem _root_.AddAction.orbitZmultiplesEquiv_symm_apply' {α β : Type _} [AddGroup α] (a : α)
+theorem _root_.AddAction.orbitZmultiplesEquiv_symm_apply' {α β : Type*} [AddGroup α] (a : α)
     [AddAction α β] (b : β) (k : ℤ) :
     (AddAction.orbitZmultiplesEquiv a b).symm k =
       k • (⟨a, mem_zmultiples a⟩ : zmultiples a) +ᵥ ⟨b, AddAction.mem_orbit_self b⟩ := by
@@ -185,7 +185,7 @@ section Group
 
 open Subgroup
 
-variable {α : Type _} [Group α] (a : α)
+variable {α : Type*} [Group α] (a : α)
 
 /-- See also `orderOf_eq_card_zpowers`. -/
 @[to_additive add_order_eq_card_zmultiples' "See also `add_order_eq_card_zmultiples`."]
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
-
-! This file was ported from Lean 3 source module data.zmod.quotient
-! leanprover-community/mathlib commit da420a8c6dd5bdfb85c4ced85c34388f633bc6ff
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.ZMod.Basic
 import Mathlib.GroupTheory.GroupAction.Quotient
@@ -14,6 +9,8 @@ import Mathlib.RingTheory.Int.Basic
 import Mathlib.RingTheory.Ideal.QuotientOperations
 import Mathlib.Algebra.Hom.Equiv.TypeTags
 
+#align_import data.zmod.quotient from "leanprover-community/mathlib"@"da420a8c6dd5bdfb85c4ced85c34388f633bc6ff"
+
 /-!
 # `ZMod n` and quotient groups / rings
 
feat: port Data.ZMod.Quotient (#4074)

Co-authored-by: Chris Hughes <chrishughes24@gmail.com> Co-authored-by: Chris Hughes <33847686+ChrisHughes24@users.noreply.github.com>

Dependencies 8 + 502

503 files ported (98.4%)
207241 lines ported (98.5%)
Show graph

The unported dependencies are