number_theory.padics.ring_homsMathlib.NumberTheory.Padics.RingHoms

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -118,10 +118,10 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
 theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ↑p ∣ r.num - r.num * r.den.gcdA p % p * ↑r.den :=
   by
-  rw [← ZMod.int_cast_zmod_eq_zero_iff_dvd]
-  simp only [Int.cast_natCast, ZMod.nat_cast_mod, Int.cast_mul, Int.cast_sub]
+  rw [← ZMod.intCast_zmod_eq_zero_iff_dvd]
+  simp only [Int.cast_natCast, ZMod.natCast_mod, Int.cast_mul, Int.cast_sub]
   have := congr_arg (coe : ℤ → ZMod p) (gcd_eq_gcd_ab r.denom p)
-  simp only [Int.cast_natCast, add_zero, Int.cast_add, ZMod.nat_cast_self, Int.cast_mul,
+  simp only [Int.cast_natCast, add_zero, Int.cast_add, ZMod.natCast_self, Int.cast_mul,
     MulZeroClass.zero_mul] at this
   push_cast
   rw [mul_right_comm, mul_assoc, ← this]
@@ -165,7 +165,7 @@ theorem zmod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
     (hb : x - b ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p])) : (a : ZMod (p ^ n)) = b :=
   by
   rw [Ideal.mem_span_singleton] at ha hb
-  rw [← sub_eq_zero, ← Int.cast_sub, ZMod.int_cast_zmod_eq_zero_iff_dvd, Int.coe_nat_pow]
+  rw [← sub_eq_zero, ← Int.cast_sub, ZMod.intCast_zmod_eq_zero_iff_dvd, Int.coe_nat_pow]
   rw [← dvd_neg, neg_sub] at ha
   have := dvd_add ha hb
   rwa [sub_eq_add_neg, sub_eq_add_neg, add_assoc, neg_add_cancel_left, ← sub_eq_add_neg, ←
@@ -309,7 +309,7 @@ theorem toZMod_spec (z : ℤ_[p]) : z - (toZMod z : ℤ_[p]) ∈ maximalIdeal 
   dsimp [to_zmod, to_zmod_hom]
   rcases exists_eq_add_of_lt hp_prime.1.Pos with ⟨p', rfl⟩
   change ↑(ZMod.val _) = _
-  simp only [ZMod.val_nat_cast, add_zero, add_def, Nat.cast_inj, zero_add]
+  simp only [ZMod.val_natCast, add_zero, add_def, Nat.cast_inj, zero_add]
   apply mod_eq_of_lt
   simpa only [zero_add] using zmod_repr_lt_p z
 #align padic_int.to_zmod_spec PadicInt.toZMod_spec
@@ -350,7 +350,7 @@ theorem appr_lt (x : ℤ_[p]) (n : ℕ) : x.appr n < p ^ n :=
   by
   induction' n with n ih generalizing x
   · simp only [appr, succ_pos', pow_zero]
-  simp only [appr, map_natCast, ZMod.nat_cast_self, RingHom.map_pow, Int.natAbs, RingHom.map_mul]
+  simp only [appr, map_natCast, ZMod.natCast_self, RingHom.map_pow, Int.natAbs, RingHom.map_mul]
   have hp : p ^ n < p ^ (n + 1) := by apply pow_lt_pow hp_prime.1.one_lt (lt_add_one n)
   split_ifs with h
   · apply lt_trans (ih _) hp
@@ -406,7 +406,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
   · rw [h]; apply dvd_zero
   push_cast; rw [sub_add_eq_sub_sub]
   obtain ⟨c, hc⟩ := ih x
-  simp only [map_natCast, ZMod.nat_cast_self, RingHom.map_pow, RingHom.map_mul, ZMod.nat_cast_val]
+  simp only [map_natCast, ZMod.natCast_self, RingHom.map_pow, RingHom.map_mul, ZMod.natCast_val]
   have hc' : c ≠ 0 := by rintro rfl; simp only [MulZeroClass.mul_zero] at hc; contradiction
   conv_rhs =>
     congr
@@ -456,7 +456,7 @@ theorem ker_toZModPow (n : ℕ) : (toZModPow n : ℤ_[p] →+* ZMod (p ^ n)).ker
   · intro h
     suffices x.appr n = 0 by convert appr_spec n x; simp only [this, sub_zero, cast_zero]
     dsimp [to_zmod_pow, to_zmod_hom] at h
-    rw [ZMod.nat_cast_zmod_eq_zero_iff_dvd] at h
+    rw [ZMod.natCast_zmod_eq_zero_iff_dvd] at h
     apply eq_zero_of_dvd_of_lt h (appr_lt _ _)
   · intro h
     rw [← sub_zero x] at h
@@ -476,7 +476,7 @@ theorem zmod_cast_comp_toZModPow (m n : ℕ) (h : m ≤ n) :
   rw [RingHom.mem_ker, RingHom.mem_ker]
   simp only [Function.comp_apply, ZMod.castHom_apply, RingHom.coe_comp]
   simp only [to_zmod_pow, to_zmod_hom, RingHom.coe_mk]
-  rw [ZMod.cast_nat_cast (pow_dvd_pow p h),
+  rw [ZMod.cast_natCast (pow_dvd_pow p h),
     zmod_congr_of_sub_mem_span m (x.appr n) (x.appr n) (x.appr m)]
   · rw [sub_self]; apply Ideal.zero_mem _
   · rw [Ideal.mem_span_singleton]
@@ -494,8 +494,8 @@ theorem cast_toZModPow (m n : ℕ) (h : m ≤ n) (x : ℤ_[p]) : ↑(toZModPow n
 #align padic_int.cast_to_zmod_pow PadicInt.cast_toZModPow
 -/
 
-#print PadicInt.denseRange_nat_cast /-
-theorem denseRange_nat_cast : DenseRange (Nat.cast : ℕ → ℤ_[p]) :=
+#print PadicInt.denseRange_natCast /-
+theorem denseRange_natCast : DenseRange (Nat.cast : ℕ → ℤ_[p]) :=
   by
   intro x
   rw [Metric.mem_closure_range_iff]
@@ -506,11 +506,11 @@ theorem denseRange_nat_cast : DenseRange (Nat.cast : ℕ → ℤ_[p]) :=
   apply lt_of_le_of_lt _ hn
   rw [norm_le_pow_iff_mem_span_pow]
   apply appr_spec
-#align padic_int.dense_range_nat_cast PadicInt.denseRange_nat_cast
+#align padic_int.dense_range_nat_cast PadicInt.denseRange_natCast
 -/
 
-#print PadicInt.denseRange_int_cast /-
-theorem denseRange_int_cast : DenseRange (Int.cast : ℤ → ℤ_[p]) :=
+#print PadicInt.denseRange_intCast /-
+theorem denseRange_intCast : DenseRange (Int.cast : ℤ → ℤ_[p]) :=
   by
   intro x
   apply dense_range_nat_cast.induction_on x
@@ -519,7 +519,7 @@ theorem denseRange_int_cast : DenseRange (Int.cast : ℤ → ℤ_[p]) :=
     change (a.cast : ℤ_[p]) with (a : ℤ).cast
     apply subset_closure
     exact Set.mem_range_self _
-#align padic_int.dense_range_int_cast PadicInt.denseRange_int_cast
+#align padic_int.dense_range_int_cast PadicInt.denseRange_intCast
 -/
 
 end RingHoms
@@ -556,10 +556,10 @@ variable {f}
 theorem pow_dvd_nthHom_sub (r : R) (i j : ℕ) (h : i ≤ j) : ↑p ^ i ∣ nthHom f r j - nthHom f r i :=
   by
   specialize f_compat i j h
-  rw [← Int.coe_nat_pow, ← ZMod.int_cast_zmod_eq_zero_iff_dvd, Int.cast_sub]
+  rw [← Int.coe_nat_pow, ← ZMod.intCast_zmod_eq_zero_iff_dvd, Int.cast_sub]
   dsimp [nth_hom]
   rw [← f_compat, RingHom.comp_apply]
-  simp only [ZMod.cast_id, ZMod.castHom_apply, sub_self, ZMod.nat_cast_val, ZMod.int_cast_cast]
+  simp only [ZMod.cast_id, ZMod.castHom_apply, sub_self, ZMod.natCast_val, ZMod.intCast_cast]
 #align padic_int.pow_dvd_nth_hom_sub PadicInt.pow_dvd_nthHom_sub
 -/
 
@@ -612,9 +612,9 @@ theorem nthHomSeq_add (r s : R) :
   dsimp [nth_hom_seq]
   apply lt_of_le_of_lt _ hn
   rw [← Int.cast_add, ← Int.cast_sub, ← padicNorm.dvd_iff_norm_le, ←
-    ZMod.int_cast_zmod_eq_zero_iff_dvd]
+    ZMod.intCast_zmod_eq_zero_iff_dvd]
   dsimp [nth_hom]
-  simp only [ZMod.nat_cast_val, RingHom.map_add, Int.cast_sub, ZMod.int_cast_cast, Int.cast_add]
+  simp only [ZMod.natCast_val, RingHom.map_add, Int.cast_sub, ZMod.intCast_cast, Int.cast_add]
   rw [ZMod.cast_add (show p ^ n ∣ p ^ j from pow_dvd_pow _ hj), sub_self]
   · infer_instance
 #align padic_int.nth_hom_seq_add PadicInt.nthHomSeq_add
@@ -631,9 +631,9 @@ theorem nthHomSeq_mul (r s : R) :
   dsimp [nth_hom_seq]
   apply lt_of_le_of_lt _ hn
   rw [← Int.cast_mul, ← Int.cast_sub, ← padicNorm.dvd_iff_norm_le, ←
-    ZMod.int_cast_zmod_eq_zero_iff_dvd]
+    ZMod.intCast_zmod_eq_zero_iff_dvd]
   dsimp [nth_hom]
-  simp only [ZMod.nat_cast_val, RingHom.map_mul, Int.cast_sub, ZMod.int_cast_cast, Int.cast_mul]
+  simp only [ZMod.natCast_val, RingHom.map_mul, Int.cast_sub, ZMod.intCast_cast, Int.cast_mul]
   rw [ZMod.cast_mul (show p ^ n ∣ p ^ j from pow_dvd_pow _ hj), sub_self]
   · infer_instance
 #align padic_int.nth_hom_seq_mul PadicInt.nthHomSeq_mul
@@ -730,7 +730,7 @@ See also `padic_int.lift_unique`.
 theorem lift_spec (n : ℕ) : (toZModPow n).comp (lift f_compat) = f n :=
   by
   ext r
-  rw [RingHom.comp_apply, ← ZMod.nat_cast_zmod_val (f n r), ← map_natCast <| to_zmod_pow n, ←
+  rw [RingHom.comp_apply, ← ZMod.natCast_zmod_val (f n r), ← map_natCast <| to_zmod_pow n, ←
     sub_eq_zero, ← RingHom.map_sub, ← RingHom.mem_ker, ker_to_zmod_pow]
   apply lift_sub_val_mem_span
 #align padic_int.lift_spec PadicInt.lift_spec
Diff
@@ -119,9 +119,9 @@ theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ↑p ∣ r.num - r.num * r.den.gcdA p % p * ↑r.den :=
   by
   rw [← ZMod.int_cast_zmod_eq_zero_iff_dvd]
-  simp only [Int.cast_ofNat, ZMod.nat_cast_mod, Int.cast_mul, Int.cast_sub]
+  simp only [Int.cast_natCast, ZMod.nat_cast_mod, Int.cast_mul, Int.cast_sub]
   have := congr_arg (coe : ℤ → ZMod p) (gcd_eq_gcd_ab r.denom p)
-  simp only [Int.cast_ofNat, add_zero, Int.cast_add, ZMod.nat_cast_self, Int.cast_mul,
+  simp only [Int.cast_natCast, add_zero, Int.cast_add, ZMod.nat_cast_self, Int.cast_mul,
     MulZeroClass.zero_mul] at this
   push_cast
   rw [mul_right_comm, mul_assoc, ← this]
@@ -144,7 +144,7 @@ theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modP
   suffices ↑p ∣ r.num - n * r.denom
     by
     convert (Int.castRingHom ℤ_[p]).map_dvd this
-    simp only [sub_mul, Int.cast_ofNat, eq_intCast, Int.cast_mul, sub_left_inj, Int.cast_sub]
+    simp only [sub_mul, Int.cast_natCast, eq_intCast, Int.cast_mul, sub_left_inj, Int.cast_sub]
     apply Subtype.coe_injective
     simp only [coe_mul, Subtype.coe_mk, coe_nat_cast]
     rw_mod_cast [@Rat.mul_den_eq_num r]; rfl
@@ -191,7 +191,7 @@ theorem zmod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m 
   specialize this hm hn
   apply_fun ZMod.castHom (show p ∣ p ^ 1 by rw [pow_one]) (ZMod p) at this
   simp only [map_intCast] at this
-  simpa only [Int.cast_ofNat] using this
+  simpa only [Int.cast_natCast] using this
 #align padic_int.zmod_congr_of_sub_mem_max_ideal PadicInt.zmod_congr_of_sub_mem_max_ideal
 -/
 
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2020 Johan Commelin, Robert Y. Lewis. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Robert Y. Lewis
 -/
-import Data.Zmod.Basic
+import Data.ZMod.Basic
 import NumberTheory.Padics.PadicIntegers
 
 #align_import number_theory.padics.ring_homs from "leanprover-community/mathlib"@"f60c6087a7275b72d5db3c5a1d0e19e35a429c0a"
@@ -110,7 +110,7 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
     simp only [← norm_int_lt_one_iff_dvd, ← padic_norm_e_of_padic_int]
     norm_cast; exact ⟨key, norm_denom_lt⟩
   apply hp_prime.1.not_dvd_one
-  rwa [← r.cop.gcd_eq_one, Nat.dvd_gcd_iff, ← Int.coe_nat_dvd_left, ← Int.coe_nat_dvd]
+  rwa [← r.cop.gcd_eq_one, Nat.dvd_gcd_iff, ← Int.natCast_dvd, ← Int.natCast_dvd_natCast]
 #align padic_int.is_unit_denom PadicInt.isUnit_den
 -/
 
@@ -129,7 +129,7 @@ theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
   · rw [rdcp.gcd_eq_one]; simp only [mul_one, cast_one, sub_self]
   apply coprime.symm
   apply (coprime_or_dvd_of_prime hp_prime.1 _).resolve_right
-  rw [← Int.coe_nat_dvd, ← norm_int_lt_one_iff_dvd, not_lt]
+  rw [← Int.natCast_dvd_natCast, ← norm_int_lt_one_iff_dvd, not_lt]
   apply ge_of_eq
   rw [← is_unit_iff]
   exact is_unit_denom r h
@@ -361,7 +361,7 @@ theorem appr_lt (x : ℤ_[p]) (n : ℕ) : x.appr n < p ^ n :=
       apply Nat.mul_le_mul_left
       apply le_pred_of_lt
       apply ZMod.val_lt
-    · rw [mul_tsub, mul_one, ← pow_succ']
+    · rw [mul_tsub, mul_one, ← pow_succ]
       apply add_tsub_cancel_of_le (le_of_lt hp)
 #align padic_int.appr_lt PadicInt.appr_lt
 -/
@@ -412,7 +412,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
     congr
     simp only [hc]
   rw [show (x - ↑(appr x n)).Valuation = (↑p ^ n * c).Valuation by rw [hc]]
-  rw [valuation_p_pow_mul _ _ hc', add_sub_cancel', pow_succ', ← mul_sub]
+  rw [valuation_p_pow_mul _ _ hc', add_sub_cancel_left, pow_succ, ← mul_sub]
   apply mul_dvd_mul_left
   obtain hc0 | hc0 := c.valuation.nat_abs.eq_zero_or_pos
   · simp only [hc0, mul_one, pow_zero]
Diff
@@ -99,7 +99,7 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
   intro norm_denom_lt
   have hr : ‖(r * r.denom : ℚ_[p])‖ = ‖(r.num : ℚ_[p])‖ := by rw_mod_cast [@Rat.mul_den_eq_num r];
     rfl
-  rw [padicNormE.mul] at hr 
+  rw [padicNormE.mul] at hr
   have key : ‖(r.num : ℚ_[p])‖ < 1 := by
     calc
       _ = _ := hr.symm
@@ -122,7 +122,7 @@ theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
   simp only [Int.cast_ofNat, ZMod.nat_cast_mod, Int.cast_mul, Int.cast_sub]
   have := congr_arg (coe : ℤ → ZMod p) (gcd_eq_gcd_ab r.denom p)
   simp only [Int.cast_ofNat, add_zero, Int.cast_add, ZMod.nat_cast_self, Int.cast_mul,
-    MulZeroClass.zero_mul] at this 
+    MulZeroClass.zero_mul] at this
   push_cast
   rw [mul_right_comm, mul_assoc, ← this]
   suffices rdcp : r.denom.coprime p
@@ -164,12 +164,12 @@ theorem zmod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
     (ha : x - a ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p]))
     (hb : x - b ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p])) : (a : ZMod (p ^ n)) = b :=
   by
-  rw [Ideal.mem_span_singleton] at ha hb 
+  rw [Ideal.mem_span_singleton] at ha hb
   rw [← sub_eq_zero, ← Int.cast_sub, ZMod.int_cast_zmod_eq_zero_iff_dvd, Int.coe_nat_pow]
-  rw [← dvd_neg, neg_sub] at ha 
+  rw [← dvd_neg, neg_sub] at ha
   have := dvd_add ha hb
   rwa [sub_eq_add_neg, sub_eq_add_neg, add_assoc, neg_add_cancel_left, ← sub_eq_add_neg, ←
-    Int.cast_sub, pow_p_dvd_int_iff] at this 
+    Int.cast_sub, pow_p_dvd_int_iff] at this
 #align padic_int.zmod_congr_of_sub_mem_span_aux PadicInt.zmod_congr_of_sub_mem_span_aux
 -/
 
@@ -185,12 +185,12 @@ theorem zmod_congr_of_sub_mem_span (n : ℕ) (x : ℤ_[p]) (a b : ℕ)
 theorem zmod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m ∈ maximalIdeal ℤ_[p])
     (hn : x - n ∈ maximalIdeal ℤ_[p]) : (m : ZMod p) = n :=
   by
-  rw [maximal_ideal_eq_span_p] at hm hn 
+  rw [maximal_ideal_eq_span_p] at hm hn
   have := zmod_congr_of_sub_mem_span_aux 1 x m n
-  simp only [pow_one] at this 
+  simp only [pow_one] at this
   specialize this hm hn
-  apply_fun ZMod.castHom (show p ∣ p ^ 1 by rw [pow_one]) (ZMod p) at this 
-  simp only [map_intCast] at this 
+  apply_fun ZMod.castHom (show p ∣ p ^ 1 by rw [pow_one]) (ZMod p) at this
+  simp only [map_intCast] at this
   simpa only [Int.cast_ofNat] using this
 #align padic_int.zmod_congr_of_sub_mem_max_ideal PadicInt.zmod_congr_of_sub_mem_max_ideal
 -/
@@ -203,7 +203,7 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
   simp only [maximal_ideal_eq_span_p, Ideal.mem_span_singleton, ← norm_lt_one_iff_dvd]
   obtain ⟨r, hr⟩ := rat_dense p (x : ℚ_[p]) zero_lt_one
   have H : ‖(r : ℚ_[p])‖ ≤ 1 := by
-    rw [norm_sub_rev] at hr 
+    rw [norm_sub_rev] at hr
     calc
       _ = ‖(r : ℚ_[p]) - x + x‖ := by ring_nf
       _ ≤ _ := (padicNormE.nonarchimedean _ _)
@@ -324,7 +324,7 @@ theorem ker_toZMod : (toZMod : ℤ_[p] →+* ZMod p).ker = maximalIdeal ℤ_[p]
   · intro h
     simpa only [h, ZMod.cast_zero, sub_zero] using to_zmod_spec x
   · intro h
-    rw [← sub_zero x] at h 
+    rw [← sub_zero x] at h
     dsimp [to_zmod, to_zmod_hom]
     convert zmod_congr_of_sub_mem_max_ideal x _ 0 _ h
     norm_cast; apply sub_zmod_repr_mem
@@ -407,7 +407,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
   push_cast; rw [sub_add_eq_sub_sub]
   obtain ⟨c, hc⟩ := ih x
   simp only [map_natCast, ZMod.nat_cast_self, RingHom.map_pow, RingHom.map_mul, ZMod.nat_cast_val]
-  have hc' : c ≠ 0 := by rintro rfl; simp only [MulZeroClass.mul_zero] at hc ; contradiction
+  have hc' : c ≠ 0 := by rintro rfl; simp only [MulZeroClass.mul_zero] at hc; contradiction
   conv_rhs =>
     congr
     simp only [hc]
@@ -416,7 +416,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
   apply mul_dvd_mul_left
   obtain hc0 | hc0 := c.valuation.nat_abs.eq_zero_or_pos
   · simp only [hc0, mul_one, pow_zero]
-    rw [mul_comm, unit_coeff_spec h] at hc 
+    rw [mul_comm, unit_coeff_spec h] at hc
     suffices c = unit_coeff h
       by
       rw [← this, ← Ideal.mem_span_singleton, ← maximal_ideal_eq_span_p]
@@ -424,7 +424,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
     obtain ⟨c, rfl⟩ : IsUnit c :=
       by
       -- TODO: write a can_lift instance for units
-      rw [Int.natAbs_eq_zero] at hc0 
+      rw [Int.natAbs_eq_zero] at hc0
       rw [is_unit_iff, norm_eq_pow_val hc', hc0, neg_zero, zpow_zero]
     rw [DiscreteValuationRing.unit_mul_pow_congr_unit _ _ _ _ _ hc]
     exact irreducible_p
@@ -455,11 +455,11 @@ theorem ker_toZModPow (n : ℕ) : (toZModPow n : ℤ_[p] →+* ZMod (p ^ n)).ker
   constructor
   · intro h
     suffices x.appr n = 0 by convert appr_spec n x; simp only [this, sub_zero, cast_zero]
-    dsimp [to_zmod_pow, to_zmod_hom] at h 
-    rw [ZMod.nat_cast_zmod_eq_zero_iff_dvd] at h 
+    dsimp [to_zmod_pow, to_zmod_hom] at h
+    rw [ZMod.nat_cast_zmod_eq_zero_iff_dvd] at h
     apply eq_zero_of_dvd_of_lt h (appr_lt _ _)
   · intro h
-    rw [← sub_zero x] at h 
+    rw [← sub_zero x] at h
     dsimp [to_zmod_pow, to_zmod_hom]
     rw [zmod_congr_of_sub_mem_span n x _ 0 _ h, cast_zero]
     apply appr_spec
@@ -592,7 +592,7 @@ def nthHomSeq (r : R) : PadicSeq p :=
 theorem nthHomSeq_one : nthHomSeq f_compat 1 ≈ 1 :=
   by
   intro ε hε
-  change _ < _ at hε 
+  change _ < _ at hε
   use 1
   intro j hj
   haveI : Fact (1 < p ^ j) := ⟨Nat.one_lt_pow _ _ (by linarith) hp_prime.1.one_lt⟩
@@ -655,7 +655,7 @@ theorem limNthHom_spec (r : R) :
   by
   intro ε hε
   obtain ⟨ε', hε'0, hε'⟩ : ∃ v : ℚ, (0 : ℝ) < v ∧ ↑v < ε := exists_rat_btwn hε
-  norm_cast at hε'0 
+  norm_cast at hε'0
   obtain ⟨N, hN⟩ := padicNormE.defn (nth_hom_seq f_compat r) hε'0
   use N
   intro n hn
@@ -713,7 +713,7 @@ theorem lift_sub_val_mem_span (r : R) (n : ℕ) :
     lim_nth_hom_spec f_compat r _
       (show (0 : ℝ) < p ^ (-n : ℤ) from Nat.zpow_pos_of_pos hp_prime.1.Pos _)
   have := le_of_lt (hk (max n k) (le_max_right _ _))
-  rw [norm_le_pow_iff_mem_span_pow] at this 
+  rw [norm_le_pow_iff_mem_span_pow] at this
   dsimp [lift]
   rw [sub_eq_sub_add_sub (lim_nth_hom f_compat r) _ ↑(nth_hom f r (max n k))]
   apply Ideal.add_mem _ _ this
Diff
@@ -404,7 +404,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
   dsimp only [appr]
   split_ifs with h
   · rw [h]; apply dvd_zero
-  push_cast ; rw [sub_add_eq_sub_sub]
+  push_cast; rw [sub_add_eq_sub_sub]
   obtain ⟨c, hc⟩ := ih x
   simp only [map_natCast, ZMod.nat_cast_self, RingHom.map_pow, RingHom.map_mul, ZMod.nat_cast_val]
   have hc' : c ≠ 0 := by rintro rfl; simp only [MulZeroClass.mul_zero] at hc ; contradiction
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2020 Johan Commelin, Robert Y. Lewis. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Robert Y. Lewis
 -/
-import Mathbin.Data.Zmod.Basic
-import Mathbin.NumberTheory.Padics.PadicIntegers
+import Data.Zmod.Basic
+import NumberTheory.Padics.PadicIntegers
 
 #align_import number_theory.padics.ring_homs from "leanprover-community/mathlib"@"f60c6087a7275b72d5db3c5a1d0e19e35a429c0a"
 
Diff
@@ -431,7 +431,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
   · rw [zero_pow hc0]
     simp only [sub_zero, ZMod.cast_zero, MulZeroClass.mul_zero]
     rw [unit_coeff_spec hc']
-    exact (dvd_pow_self (p : ℤ_[p]) hc0.ne').mul_left _
+    exact (dvd_pow_self (p : ℤ_[p]) hc0.ne').hMul_left _
 #align padic_int.appr_spec PadicInt.appr_spec
 -/
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2020 Johan Commelin, Robert Y. Lewis. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Robert Y. Lewis
-
-! This file was ported from Lean 3 source module number_theory.padics.ring_homs
-! leanprover-community/mathlib commit f60c6087a7275b72d5db3c5a1d0e19e35a429c0a
-! 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.NumberTheory.Padics.PadicIntegers
 
+#align_import number_theory.padics.ring_homs from "leanprover-community/mathlib"@"f60c6087a7275b72d5db3c5a1d0e19e35a429c0a"
+
 /-!
 
 # Relating `ℤ_[p]` to `zmod (p ^ n)`
Diff
@@ -55,8 +55,6 @@ namespace PadicInt
 
 variable {p : ℕ} [hp_prime : Fact p.Prime]
 
-include hp_prime
-
 section RingHoms
 
 /-! ### Ring homomorphisms to `zmod p` and `zmod (p ^ n)` -/
@@ -64,8 +62,6 @@ section RingHoms
 
 variable (p) (r : ℚ)
 
-omit hp_prime
-
 #print PadicInt.modPart /-
 /-- `mod_part p r` is an integer that satisfies
 `‖(r - mod_part p r : ℚ_[p])‖ < 1` when `‖(r : ℚ_[p])‖ ≤ 1`,
@@ -80,8 +76,6 @@ def modPart : ℤ :=
 #align padic_int.mod_part PadicInt.modPart
 -/
 
-include hp_prime
-
 variable {p}
 
 #print PadicInt.modPart_lt_p /-
@@ -99,6 +93,7 @@ theorem modPart_nonneg : 0 ≤ modPart p r :=
 #align padic_int.mod_part_nonneg PadicInt.modPart_nonneg
 -/
 
+#print PadicInt.isUnit_den /-
 theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : ℤ_[p]) :=
   by
   rw [is_unit_iff]
@@ -120,7 +115,9 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
   apply hp_prime.1.not_dvd_one
   rwa [← r.cop.gcd_eq_one, Nat.dvd_gcd_iff, ← Int.coe_nat_dvd_left, ← Int.coe_nat_dvd]
 #align padic_int.is_unit_denom PadicInt.isUnit_den
+-/
 
+#print PadicInt.norm_sub_modPart_aux /-
 theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ↑p ∣ r.num - r.num * r.den.gcdA p % p * ↑r.den :=
   by
@@ -140,7 +137,9 @@ theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
   rw [← is_unit_iff]
   exact is_unit_denom r h
 #align padic_int.norm_sub_mod_part_aux PadicInt.norm_sub_modPart_aux
+-/
 
+#print PadicInt.norm_sub_modPart /-
 theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modPart p r : ℤ_[p])‖ < 1 :=
   by
   let n := mod_part p r
@@ -154,12 +153,16 @@ theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modP
     rw_mod_cast [@Rat.mul_den_eq_num r]; rfl
   exact norm_sub_mod_part_aux r h
 #align padic_int.norm_sub_mod_part PadicInt.norm_sub_modPart
+-/
 
+#print PadicInt.exists_mem_range_of_norm_rat_le_one /-
 theorem exists_mem_range_of_norm_rat_le_one (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ∃ n : ℤ, 0 ≤ n ∧ n < p ∧ ‖(⟨r, h⟩ - n : ℤ_[p])‖ < 1 :=
   ⟨modPart p r, modPart_nonneg _, modPart_lt_p _, norm_sub_modPart _ h⟩
 #align padic_int.exists_mem_range_of_norm_rat_le_one PadicInt.exists_mem_range_of_norm_rat_le_one
+-/
 
+#print PadicInt.zmod_congr_of_sub_mem_span_aux /-
 theorem zmod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
     (ha : x - a ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p]))
     (hb : x - b ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p])) : (a : ZMod (p ^ n)) = b :=
@@ -171,13 +174,17 @@ theorem zmod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
   rwa [sub_eq_add_neg, sub_eq_add_neg, add_assoc, neg_add_cancel_left, ← sub_eq_add_neg, ←
     Int.cast_sub, pow_p_dvd_int_iff] at this 
 #align padic_int.zmod_congr_of_sub_mem_span_aux PadicInt.zmod_congr_of_sub_mem_span_aux
+-/
 
+#print PadicInt.zmod_congr_of_sub_mem_span /-
 theorem zmod_congr_of_sub_mem_span (n : ℕ) (x : ℤ_[p]) (a b : ℕ)
     (ha : x - a ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p]))
     (hb : x - b ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p])) : (a : ZMod (p ^ n)) = b := by
   simpa using zmod_congr_of_sub_mem_span_aux n x a b ha hb
 #align padic_int.zmod_congr_of_sub_mem_span PadicInt.zmod_congr_of_sub_mem_span
+-/
 
+#print PadicInt.zmod_congr_of_sub_mem_max_ideal /-
 theorem zmod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m ∈ maximalIdeal ℤ_[p])
     (hn : x - n ∈ maximalIdeal ℤ_[p]) : (m : ZMod p) = n :=
   by
@@ -189,9 +196,11 @@ theorem zmod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m 
   simp only [map_intCast] at this 
   simpa only [Int.cast_ofNat] using this
 #align padic_int.zmod_congr_of_sub_mem_max_ideal PadicInt.zmod_congr_of_sub_mem_max_ideal
+-/
 
 variable (x : ℤ_[p])
 
+#print PadicInt.exists_mem_range /-
 theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p] :=
   by
   simp only [maximal_ideal_eq_span_p, Ideal.mem_span_singleton, ← norm_lt_one_iff_dvd]
@@ -212,6 +221,7 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
   apply max_lt hr
   simpa using hn
 #align padic_int.exists_mem_range PadicInt.exists_mem_range
+-/
 
 #print PadicInt.zmodRepr /-
 /-- `zmod_repr x` is the unique natural number smaller than `p`
@@ -222,9 +232,11 @@ def zmodRepr : ℕ :=
 #align padic_int.zmod_repr PadicInt.zmodRepr
 -/
 
+#print PadicInt.zmodRepr_spec /-
 theorem zmodRepr_spec : zmodRepr x < p ∧ x - zmodRepr x ∈ maximalIdeal ℤ_[p] :=
   Classical.choose_spec (exists_mem_range x)
 #align padic_int.zmod_repr_spec PadicInt.zmodRepr_spec
+-/
 
 #print PadicInt.zmodRepr_lt_p /-
 theorem zmodRepr_lt_p : zmodRepr x < p :=
@@ -232,10 +244,13 @@ theorem zmodRepr_lt_p : zmodRepr x < p :=
 #align padic_int.zmod_repr_lt_p PadicInt.zmodRepr_lt_p
 -/
 
+#print PadicInt.sub_zmodRepr_mem /-
 theorem sub_zmodRepr_mem : x - zmodRepr x ∈ maximalIdeal ℤ_[p] :=
   (zmodRepr_spec _).2
 #align padic_int.sub_zmod_repr_mem PadicInt.sub_zmodRepr_mem
+-/
 
+#print PadicInt.toZModHom /-
 /-- `to_zmod_hom` is an auxiliary constructor for creating ring homs from `ℤ_[p]` to `zmod v`.
 -/
 def toZModHom (v : ℕ) (f : ℤ_[p] → ℕ) (f_spec : ∀ x, x - f x ∈ (Ideal.span {v} : Ideal ℤ_[p]))
@@ -269,7 +284,9 @@ def toZModHom (v : ℕ) (f : ℤ_[p] → ℕ) (f_spec : ∀ x, x - f x ∈ (Idea
       rw [cast_mul]
       ring
 #align padic_int.to_zmod_hom PadicInt.toZModHom
+-/
 
+#print PadicInt.toZMod /-
 /-- `to_zmod` is a ring hom from `ℤ_[p]` to `zmod p`,
 with the equality `to_zmod x = (zmod_repr x : zmod p)`.
 -/
@@ -277,7 +294,9 @@ def toZMod : ℤ_[p] →+* ZMod p :=
   toZModHom p zmodRepr (by rw [← maximal_ideal_eq_span_p]; exact sub_zmod_repr_mem)
     (by rw [← maximal_ideal_eq_span_p]; exact zmod_congr_of_sub_mem_max_ideal)
 #align padic_int.to_zmod PadicInt.toZMod
+-/
 
+#print PadicInt.toZMod_spec /-
 /-- `z - (to_zmod z : ℤ_[p])` is contained in the maximal ideal of `ℤ_[p]`, for every `z : ℤ_[p]`.
 
 The coercion from `zmod p` to `ℤ_[p]` is `zmod.has_coe_t`,
@@ -297,7 +316,9 @@ theorem toZMod_spec (z : ℤ_[p]) : z - (toZMod z : ℤ_[p]) ∈ maximalIdeal 
   apply mod_eq_of_lt
   simpa only [zero_add] using zmod_repr_lt_p z
 #align padic_int.to_zmod_spec PadicInt.toZMod_spec
+-/
 
+#print PadicInt.ker_toZMod /-
 theorem ker_toZMod : (toZMod : ℤ_[p] →+* ZMod p).ker = maximalIdeal ℤ_[p] :=
   by
   ext x
@@ -311,6 +332,7 @@ theorem ker_toZMod : (toZMod : ℤ_[p] →+* ZMod p).ker = maximalIdeal ℤ_[p]
     convert zmod_congr_of_sub_mem_max_ideal x _ 0 _ h
     norm_cast; apply sub_zmod_repr_mem
 #align padic_int.ker_to_zmod PadicInt.ker_toZMod
+-/
 
 #print PadicInt.appr /-
 /-- `appr n x` gives a value `v : ℕ` such that `x` and `↑v : ℤ_p` are congruent mod `p^n`.
@@ -375,6 +397,7 @@ theorem dvd_appr_sub_appr (x : ℤ_[p]) (m n : ℕ) (h : m ≤ n) : p ^ m ∣ x.
 #align padic_int.dvd_appr_sub_appr PadicInt.dvd_appr_sub_appr
 -/
 
+#print PadicInt.appr_spec /-
 theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p]) :=
   by
   simp only [Ideal.mem_span_singleton]
@@ -413,7 +436,9 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
     rw [unit_coeff_spec hc']
     exact (dvd_pow_self (p : ℤ_[p]) hc0.ne').mul_left _
 #align padic_int.appr_spec PadicInt.appr_spec
+-/
 
+#print PadicInt.toZModPow /-
 /-- A ring hom from `ℤ_[p]` to `zmod (p^n)`, with underlying function `padic_int.appr n`. -/
 def toZModPow (n : ℕ) : ℤ_[p] →+* ZMod (p ^ n) :=
   toZModHom (p ^ n) (fun x => appr x n) (by intros; convert appr_spec n _ using 1; simp)
@@ -423,7 +448,9 @@ def toZModPow (n : ℕ) : ℤ_[p] →+* ZMod (p ^ n) :=
       · simpa using ha
       · simpa using hb)
 #align padic_int.to_zmod_pow PadicInt.toZModPow
+-/
 
+#print PadicInt.ker_toZModPow /-
 theorem ker_toZModPow (n : ℕ) : (toZModPow n : ℤ_[p] →+* ZMod (p ^ n)).ker = Ideal.span {p ^ n} :=
   by
   ext x
@@ -440,7 +467,9 @@ theorem ker_toZModPow (n : ℕ) : (toZModPow n : ℤ_[p] →+* ZMod (p ^ n)).ker
     rw [zmod_congr_of_sub_mem_span n x _ 0 _ h, cast_zero]
     apply appr_spec
 #align padic_int.ker_to_zmod_pow PadicInt.ker_toZModPow
+-/
 
+#print PadicInt.zmod_cast_comp_toZModPow /-
 @[simp]
 theorem zmod_cast_comp_toZModPow (m n : ℕ) (h : m ≤ n) :
     (ZMod.castHom (pow_dvd_pow p h) (ZMod (p ^ m))).comp (toZModPow n) = toZModPow m :=
@@ -459,12 +488,16 @@ theorem zmod_cast_comp_toZModPow (m n : ℕ) (h : m ≤ n) :
     rw [← Nat.cast_sub (appr_mono _ h), hc, Nat.cast_mul, Nat.cast_pow]
   · infer_instance
 #align padic_int.zmod_cast_comp_to_zmod_pow PadicInt.zmod_cast_comp_toZModPow
+-/
 
+#print PadicInt.cast_toZModPow /-
 @[simp]
 theorem cast_toZModPow (m n : ℕ) (h : m ≤ n) (x : ℤ_[p]) : ↑(toZModPow n x) = toZModPow m x := by
   rw [← zmod_cast_comp_to_zmod_pow _ _ h]; rfl
 #align padic_int.cast_to_zmod_pow PadicInt.cast_toZModPow
+-/
 
+#print PadicInt.denseRange_nat_cast /-
 theorem denseRange_nat_cast : DenseRange (Nat.cast : ℕ → ℤ_[p]) :=
   by
   intro x
@@ -477,7 +510,9 @@ theorem denseRange_nat_cast : DenseRange (Nat.cast : ℕ → ℤ_[p]) :=
   rw [norm_le_pow_iff_mem_span_pow]
   apply appr_spec
 #align padic_int.dense_range_nat_cast PadicInt.denseRange_nat_cast
+-/
 
+#print PadicInt.denseRange_int_cast /-
 theorem denseRange_int_cast : DenseRange (Int.cast : ℤ → ℤ_[p]) :=
   by
   intro x
@@ -488,6 +523,7 @@ theorem denseRange_int_cast : DenseRange (Int.cast : ℤ → ℤ_[p]) :=
     apply subset_closure
     exact Set.mem_range_self _
 #align padic_int.dense_range_int_cast PadicInt.denseRange_int_cast
+-/
 
 end RingHoms
 
@@ -501,8 +537,6 @@ open CauSeq PadicSeq
 variable {R : Type _} [NonAssocSemiring R] (f : ∀ k : ℕ, R →+* ZMod (p ^ k))
   (f_compat : ∀ (k1 k2) (hk : k1 ≤ k2), (ZMod.castHom (pow_dvd_pow p hk) _).comp (f k2) = f k1)
 
-omit hp_prime
-
 #print PadicInt.nthHom /-
 /-- Given a family of ring homs `f : Π n : ℕ, R →+* zmod (p ^ n)`,
 `nth_hom f r` is an integer-valued sequence
@@ -513,16 +547,15 @@ def nthHom (r : R) : ℕ → ℤ := fun n => (f n r : ZMod (p ^ n)).val
 #align padic_int.nth_hom PadicInt.nthHom
 -/
 
+#print PadicInt.nthHom_zero /-
 @[simp]
 theorem nthHom_zero : nthHom f 0 = 0 := by simp [nth_hom] <;> rfl
 #align padic_int.nth_hom_zero PadicInt.nthHom_zero
+-/
 
 variable {f}
 
-include hp_prime
-
-include f_compat
-
+#print PadicInt.pow_dvd_nthHom_sub /-
 theorem pow_dvd_nthHom_sub (r : R) (i j : ℕ) (h : i ≤ j) : ↑p ^ i ∣ nthHom f r j - nthHom f r i :=
   by
   specialize f_compat i j h
@@ -531,7 +564,9 @@ theorem pow_dvd_nthHom_sub (r : R) (i j : ℕ) (h : i ≤ j) : ↑p ^ i ∣ nthH
   rw [← f_compat, RingHom.comp_apply]
   simp only [ZMod.cast_id, ZMod.castHom_apply, sub_self, ZMod.nat_cast_val, ZMod.int_cast_cast]
 #align padic_int.pow_dvd_nth_hom_sub PadicInt.pow_dvd_nthHom_sub
+-/
 
+#print PadicInt.isCauSeq_nthHom /-
 theorem isCauSeq_nthHom (r : R) : IsCauSeq (padicNorm p) fun n => nthHom f r n :=
   by
   intro ε hε
@@ -543,6 +578,7 @@ theorem isCauSeq_nthHom (r : R) : IsCauSeq (padicNorm p) fun n => nthHom f r n :
   rw [← padicNorm.dvd_iff_norm_le]
   exact_mod_cast pow_dvd_nth_hom_sub f_compat r k j hj
 #align padic_int.is_cau_seq_nth_hom PadicInt.isCauSeq_nthHom
+-/
 
 #print PadicInt.nthHomSeq /-
 /-- `nth_hom_seq f_compat r` bundles `padic_int.nth_hom f r`
@@ -554,6 +590,7 @@ def nthHomSeq (r : R) : PadicSeq p :=
 #align padic_int.nth_hom_seq PadicInt.nthHomSeq
 -/
 
+#print PadicInt.nthHomSeq_one /-
 -- this lemma ran into issues after changing to `ne_zero` and I'm not sure why.
 theorem nthHomSeq_one : nthHomSeq f_compat 1 ≈ 1 :=
   by
@@ -565,7 +602,9 @@ theorem nthHomSeq_one : nthHomSeq f_compat 1 ≈ 1 :=
   suffices ((1 : ZMod (p ^ j)) : ℚ) = 1 by simp [nth_hom_seq, nth_hom, this, hε]
   rw [ZMod.cast_eq_val, ZMod.val_one, Nat.cast_one]
 #align padic_int.nth_hom_seq_one PadicInt.nthHomSeq_one
+-/
 
+#print PadicInt.nthHomSeq_add /-
 theorem nthHomSeq_add (r s : R) :
     nthHomSeq f_compat (r + s) ≈ nthHomSeq f_compat r + nthHomSeq f_compat s :=
   by
@@ -582,7 +621,9 @@ theorem nthHomSeq_add (r s : R) :
   rw [ZMod.cast_add (show p ^ n ∣ p ^ j from pow_dvd_pow _ hj), sub_self]
   · infer_instance
 #align padic_int.nth_hom_seq_add PadicInt.nthHomSeq_add
+-/
 
+#print PadicInt.nthHomSeq_mul /-
 theorem nthHomSeq_mul (r s : R) :
     nthHomSeq f_compat (r * s) ≈ nthHomSeq f_compat r * nthHomSeq f_compat s :=
   by
@@ -599,6 +640,7 @@ theorem nthHomSeq_mul (r s : R) :
   rw [ZMod.cast_mul (show p ^ n ∣ p ^ j from pow_dvd_pow _ hj), sub_self]
   · infer_instance
 #align padic_int.nth_hom_seq_mul PadicInt.nthHomSeq_mul
+-/
 
 #print PadicInt.limNthHom /-
 /--
@@ -610,6 +652,7 @@ def limNthHom (r : R) : ℤ_[p] :=
 #align padic_int.lim_nth_hom PadicInt.limNthHom
 -/
 
+#print PadicInt.limNthHom_spec /-
 theorem limNthHom_spec (r : R) :
     ∀ ε : ℝ, 0 < ε → ∃ N : ℕ, ∀ n ≥ N, ‖limNthHom f_compat r - nthHom f r n‖ < ε :=
   by
@@ -624,24 +667,34 @@ theorem limNthHom_spec (r : R) :
   norm_cast
   exact hN _ hn
 #align padic_int.lim_nth_hom_spec PadicInt.limNthHom_spec
+-/
 
+#print PadicInt.limNthHom_zero /-
 theorem limNthHom_zero : limNthHom f_compat 0 = 0 := by simp [lim_nth_hom] <;> rfl
 #align padic_int.lim_nth_hom_zero PadicInt.limNthHom_zero
+-/
 
+#print PadicInt.limNthHom_one /-
 theorem limNthHom_one : limNthHom f_compat 1 = 1 :=
   Subtype.ext <| Quot.sound <| nthHomSeq_one _
 #align padic_int.lim_nth_hom_one PadicInt.limNthHom_one
+-/
 
+#print PadicInt.limNthHom_add /-
 theorem limNthHom_add (r s : R) :
     limNthHom f_compat (r + s) = limNthHom f_compat r + limNthHom f_compat s :=
   Subtype.ext <| Quot.sound <| nthHomSeq_add _ _ _
 #align padic_int.lim_nth_hom_add PadicInt.limNthHom_add
+-/
 
+#print PadicInt.limNthHom_mul /-
 theorem limNthHom_mul (r s : R) :
     limNthHom f_compat (r * s) = limNthHom f_compat r * limNthHom f_compat s :=
   Subtype.ext <| Quot.sound <| nthHomSeq_mul _ _ _
 #align padic_int.lim_nth_hom_mul PadicInt.limNthHom_mul
+-/
 
+#print PadicInt.lift /-
 -- TODO: generalize this to arbitrary complete discrete valuation rings
 /-- `lift f_compat` is the limit of a sequence `f` of compatible ring homs `R →+* zmod (p^k)`,
 with the equality `lift f_compat r = padic_int.lim_nth_hom f_compat r`.
@@ -653,9 +706,9 @@ def lift : R →+* ℤ_[p] where
   map_zero' := limNthHom_zero f_compat
   map_add' := limNthHom_add f_compat
 #align padic_int.lift PadicInt.lift
+-/
 
-omit f_compat
-
+#print PadicInt.lift_sub_val_mem_span /-
 theorem lift_sub_val_mem_span (r : R) (n : ℕ) :
     lift f_compat r - (f n r).val ∈ (Ideal.span {↑p ^ n} : Ideal ℤ_[p]) :=
   by
@@ -671,6 +724,7 @@ theorem lift_sub_val_mem_span (r : R) (n : ℕ) :
   simpa only [eq_intCast, RingHom.map_pow, Int.cast_sub] using
     (Int.castRingHom ℤ_[p]).map_dvd (pow_dvd_nth_hom_sub f_compat r n (max n k) (le_max_left _ _))
 #align padic_int.lift_sub_val_mem_span PadicInt.lift_sub_val_mem_span
+-/
 
 #print PadicInt.lift_spec /-
 /-- One part of the universal property of `ℤ_[p]` as a projective limit.
@@ -685,6 +739,7 @@ theorem lift_spec (n : ℕ) : (toZModPow n).comp (lift f_compat) = f n :=
 #align padic_int.lift_spec PadicInt.lift_spec
 -/
 
+#print PadicInt.lift_unique /-
 /-- One part of the universal property of `ℤ_[p]` as a projective limit.
 See also `padic_int.lift_spec`.
 -/
@@ -698,7 +753,9 @@ theorem lift_unique (g : R →+* ℤ_[p]) (hg : ∀ n, (toZModPow n).comp g = f
   rw [dist_eq_norm, norm_le_pow_iff_mem_span_pow, ← ker_to_zmod_pow, RingHom.mem_ker,
     RingHom.map_sub, ← RingHom.comp_apply, ← RingHom.comp_apply, lift_spec, hg, sub_self]
 #align padic_int.lift_unique PadicInt.lift_unique
+-/
 
+#print PadicInt.lift_self /-
 @[simp]
 theorem lift_self (z : ℤ_[p]) : @lift p _ ℤ_[p] _ toZModPow zmod_cast_comp_toZModPow z = z :=
   by
@@ -706,9 +763,11 @@ theorem lift_self (z : ℤ_[p]) : @lift p _ ℤ_[p] _ toZModPow zmod_cast_comp_t
   rw [@lift_unique p _ ℤ_[p] _ _ zmod_cast_comp_to_zmod_pow (RingHom.id ℤ_[p])]
   intro; rw [RingHom.comp_id]
 #align padic_int.lift_self PadicInt.lift_self
+-/
 
 end lift
 
+#print PadicInt.ext_of_toZModPow /-
 theorem ext_of_toZModPow {x y : ℤ_[p]} : (∀ n, toZModPow n x = toZModPow n y) ↔ x = y :=
   by
   constructor
@@ -717,7 +776,9 @@ theorem ext_of_toZModPow {x y : ℤ_[p]} : (∀ n, toZModPow n x = toZModPow n y
     simp [lift, lim_nth_hom, nth_hom, h]
   · rintro rfl _; rfl
 #align padic_int.ext_of_to_zmod_pow PadicInt.ext_of_toZModPow
+-/
 
+#print PadicInt.toZModPow_eq_iff_ext /-
 theorem toZModPow_eq_iff_ext {R : Type _} [NonAssocSemiring R] {g g' : R →+* ℤ_[p]} :
     (∀ n, (toZModPow n).comp g = (toZModPow n).comp g') ↔ g = g' :=
   by
@@ -730,6 +791,7 @@ theorem toZModPow_eq_iff_ext {R : Type _} [NonAssocSemiring R] {g g' : R →+* 
     rw [hg n]
   · rintro rfl _; rfl
 #align padic_int.to_zmod_pow_eq_iff_ext PadicInt.toZModPow_eq_iff_ext
+-/
 
 end PadicInt
 
Diff
@@ -113,7 +113,6 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
       _ = _ := hr.symm
       _ < 1 * 1 := (mul_lt_mul' h norm_denom_lt (norm_nonneg _) zero_lt_one)
       _ = 1 := mul_one 1
-      
   have : ↑p ∣ r.num ∧ (p : ℤ) ∣ r.denom :=
     by
     simp only [← norm_int_lt_one_iff_dvd, ← padic_norm_e_of_padic_int]
@@ -203,7 +202,6 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
       _ = ‖(r : ℚ_[p]) - x + x‖ := by ring_nf
       _ ≤ _ := (padicNormE.nonarchimedean _ _)
       _ ≤ _ := max_le (le_of_lt hr) x.2
-      
   obtain ⟨n, hzn, hnp, hn⟩ := exists_mem_range_of_norm_rat_le_one r H
   lift n to ℕ using hzn
   use n
@@ -340,7 +338,6 @@ theorem appr_lt (x : ℤ_[p]) (n : ℕ) : x.appr n < p ^ n :=
   · calc
       _ < p ^ n + p ^ n * (p - 1) := _
       _ = p ^ (n + 1) := _
-      
     · apply add_lt_add_of_lt_of_le (ih _)
       apply Nat.mul_le_mul_left
       apply le_pred_of_lt
Diff
@@ -148,7 +148,7 @@ theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modP
   rw [norm_lt_one_iff_dvd, ← (is_unit_denom r h).dvd_mul_right]
   suffices ↑p ∣ r.num - n * r.denom
     by
-    convert(Int.castRingHom ℤ_[p]).map_dvd this
+    convert (Int.castRingHom ℤ_[p]).map_dvd this
     simp only [sub_mul, Int.cast_ofNat, eq_intCast, Int.cast_mul, sub_left_inj, Int.cast_sub]
     apply Subtype.coe_injective
     simp only [coe_mul, Subtype.coe_mk, coe_nat_cast]
@@ -186,7 +186,7 @@ theorem zmod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m 
   have := zmod_congr_of_sub_mem_span_aux 1 x m n
   simp only [pow_one] at this 
   specialize this hm hn
-  apply_fun ZMod.castHom (show p ∣ p ^ 1 by rw [pow_one]) (ZMod p)  at this 
+  apply_fun ZMod.castHom (show p ∣ p ^ 1 by rw [pow_one]) (ZMod p) at this 
   simp only [map_intCast] at this 
   simpa only [Int.cast_ofNat] using this
 #align padic_int.zmod_congr_of_sub_mem_max_ideal PadicInt.zmod_congr_of_sub_mem_max_ideal
@@ -618,7 +618,7 @@ theorem limNthHom_spec (r : R) :
   by
   intro ε hε
   obtain ⟨ε', hε'0, hε'⟩ : ∃ v : ℚ, (0 : ℝ) < v ∧ ↑v < ε := exists_rat_btwn hε
-  norm_cast  at hε'0 
+  norm_cast at hε'0 
   obtain ⟨N, hN⟩ := padicNormE.defn (nth_hom_seq f_compat r) hε'0
   use N
   intro n hn
Diff
@@ -107,7 +107,7 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
   intro norm_denom_lt
   have hr : ‖(r * r.denom : ℚ_[p])‖ = ‖(r.num : ℚ_[p])‖ := by rw_mod_cast [@Rat.mul_den_eq_num r];
     rfl
-  rw [padicNormE.mul] at hr
+  rw [padicNormE.mul] at hr 
   have key : ‖(r.num : ℚ_[p])‖ < 1 := by
     calc
       _ = _ := hr.symm
@@ -129,7 +129,7 @@ theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
   simp only [Int.cast_ofNat, ZMod.nat_cast_mod, Int.cast_mul, Int.cast_sub]
   have := congr_arg (coe : ℤ → ZMod p) (gcd_eq_gcd_ab r.denom p)
   simp only [Int.cast_ofNat, add_zero, Int.cast_add, ZMod.nat_cast_self, Int.cast_mul,
-    MulZeroClass.zero_mul] at this
+    MulZeroClass.zero_mul] at this 
   push_cast
   rw [mul_right_comm, mul_assoc, ← this]
   suffices rdcp : r.denom.coprime p
@@ -165,12 +165,12 @@ theorem zmod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
     (ha : x - a ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p]))
     (hb : x - b ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p])) : (a : ZMod (p ^ n)) = b :=
   by
-  rw [Ideal.mem_span_singleton] at ha hb
+  rw [Ideal.mem_span_singleton] at ha hb 
   rw [← sub_eq_zero, ← Int.cast_sub, ZMod.int_cast_zmod_eq_zero_iff_dvd, Int.coe_nat_pow]
-  rw [← dvd_neg, neg_sub] at ha
+  rw [← dvd_neg, neg_sub] at ha 
   have := dvd_add ha hb
   rwa [sub_eq_add_neg, sub_eq_add_neg, add_assoc, neg_add_cancel_left, ← sub_eq_add_neg, ←
-    Int.cast_sub, pow_p_dvd_int_iff] at this
+    Int.cast_sub, pow_p_dvd_int_iff] at this 
 #align padic_int.zmod_congr_of_sub_mem_span_aux PadicInt.zmod_congr_of_sub_mem_span_aux
 
 theorem zmod_congr_of_sub_mem_span (n : ℕ) (x : ℤ_[p]) (a b : ℕ)
@@ -182,12 +182,12 @@ theorem zmod_congr_of_sub_mem_span (n : ℕ) (x : ℤ_[p]) (a b : ℕ)
 theorem zmod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m ∈ maximalIdeal ℤ_[p])
     (hn : x - n ∈ maximalIdeal ℤ_[p]) : (m : ZMod p) = n :=
   by
-  rw [maximal_ideal_eq_span_p] at hm hn
+  rw [maximal_ideal_eq_span_p] at hm hn 
   have := zmod_congr_of_sub_mem_span_aux 1 x m n
-  simp only [pow_one] at this
+  simp only [pow_one] at this 
   specialize this hm hn
-  apply_fun ZMod.castHom (show p ∣ p ^ 1 by rw [pow_one]) (ZMod p)  at this
-  simp only [map_intCast] at this
+  apply_fun ZMod.castHom (show p ∣ p ^ 1 by rw [pow_one]) (ZMod p)  at this 
+  simp only [map_intCast] at this 
   simpa only [Int.cast_ofNat] using this
 #align padic_int.zmod_congr_of_sub_mem_max_ideal PadicInt.zmod_congr_of_sub_mem_max_ideal
 
@@ -198,7 +198,7 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
   simp only [maximal_ideal_eq_span_p, Ideal.mem_span_singleton, ← norm_lt_one_iff_dvd]
   obtain ⟨r, hr⟩ := rat_dense p (x : ℚ_[p]) zero_lt_one
   have H : ‖(r : ℚ_[p])‖ ≤ 1 := by
-    rw [norm_sub_rev] at hr
+    rw [norm_sub_rev] at hr 
     calc
       _ = ‖(r : ℚ_[p]) - x + x‖ := by ring_nf
       _ ≤ _ := (padicNormE.nonarchimedean _ _)
@@ -208,7 +208,7 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
   lift n to ℕ using hzn
   use n
   constructor; · exact_mod_cast hnp
-  simp only [norm_def, coe_sub, Subtype.coe_mk, coe_nat_cast] at hn⊢
+  simp only [norm_def, coe_sub, Subtype.coe_mk, coe_nat_cast] at hn ⊢
   rw [show (x - n : ℚ_[p]) = x - r + (r - n) by ring]
   apply lt_of_le_of_lt (padicNormE.nonarchimedean _ _)
   apply max_lt hr
@@ -308,7 +308,7 @@ theorem ker_toZMod : (toZMod : ℤ_[p] →+* ZMod p).ker = maximalIdeal ℤ_[p]
   · intro h
     simpa only [h, ZMod.cast_zero, sub_zero] using to_zmod_spec x
   · intro h
-    rw [← sub_zero x] at h
+    rw [← sub_zero x] at h 
     dsimp [to_zmod, to_zmod_hom]
     convert zmod_congr_of_sub_mem_max_ideal x _ 0 _ h
     norm_cast; apply sub_zmod_repr_mem
@@ -390,7 +390,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
   push_cast ; rw [sub_add_eq_sub_sub]
   obtain ⟨c, hc⟩ := ih x
   simp only [map_natCast, ZMod.nat_cast_self, RingHom.map_pow, RingHom.map_mul, ZMod.nat_cast_val]
-  have hc' : c ≠ 0 := by rintro rfl; simp only [MulZeroClass.mul_zero] at hc; contradiction
+  have hc' : c ≠ 0 := by rintro rfl; simp only [MulZeroClass.mul_zero] at hc ; contradiction
   conv_rhs =>
     congr
     simp only [hc]
@@ -399,7 +399,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
   apply mul_dvd_mul_left
   obtain hc0 | hc0 := c.valuation.nat_abs.eq_zero_or_pos
   · simp only [hc0, mul_one, pow_zero]
-    rw [mul_comm, unit_coeff_spec h] at hc
+    rw [mul_comm, unit_coeff_spec h] at hc 
     suffices c = unit_coeff h
       by
       rw [← this, ← Ideal.mem_span_singleton, ← maximal_ideal_eq_span_p]
@@ -407,7 +407,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
     obtain ⟨c, rfl⟩ : IsUnit c :=
       by
       -- TODO: write a can_lift instance for units
-      rw [Int.natAbs_eq_zero] at hc0
+      rw [Int.natAbs_eq_zero] at hc0 
       rw [is_unit_iff, norm_eq_pow_val hc', hc0, neg_zero, zpow_zero]
     rw [DiscreteValuationRing.unit_mul_pow_congr_unit _ _ _ _ _ hc]
     exact irreducible_p
@@ -419,7 +419,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
 
 /-- A ring hom from `ℤ_[p]` to `zmod (p^n)`, with underlying function `padic_int.appr n`. -/
 def toZModPow (n : ℕ) : ℤ_[p] →+* ZMod (p ^ n) :=
-  toZModHom (p ^ n) (fun x => appr x n) (by intros ; convert appr_spec n _ using 1; simp)
+  toZModHom (p ^ n) (fun x => appr x n) (by intros; convert appr_spec n _ using 1; simp)
     (by
       intro x a b ha hb
       apply zmod_congr_of_sub_mem_span n x a b
@@ -434,11 +434,11 @@ theorem ker_toZModPow (n : ℕ) : (toZModPow n : ℤ_[p] →+* ZMod (p ^ n)).ker
   constructor
   · intro h
     suffices x.appr n = 0 by convert appr_spec n x; simp only [this, sub_zero, cast_zero]
-    dsimp [to_zmod_pow, to_zmod_hom] at h
-    rw [ZMod.nat_cast_zmod_eq_zero_iff_dvd] at h
+    dsimp [to_zmod_pow, to_zmod_hom] at h 
+    rw [ZMod.nat_cast_zmod_eq_zero_iff_dvd] at h 
     apply eq_zero_of_dvd_of_lt h (appr_lt _ _)
   · intro h
-    rw [← sub_zero x] at h
+    rw [← sub_zero x] at h 
     dsimp [to_zmod_pow, to_zmod_hom]
     rw [zmod_congr_of_sub_mem_span n x _ 0 _ h, cast_zero]
     apply appr_spec
@@ -561,7 +561,7 @@ def nthHomSeq (r : R) : PadicSeq p :=
 theorem nthHomSeq_one : nthHomSeq f_compat 1 ≈ 1 :=
   by
   intro ε hε
-  change _ < _ at hε
+  change _ < _ at hε 
   use 1
   intro j hj
   haveI : Fact (1 < p ^ j) := ⟨Nat.one_lt_pow _ _ (by linarith) hp_prime.1.one_lt⟩
@@ -618,7 +618,7 @@ theorem limNthHom_spec (r : R) :
   by
   intro ε hε
   obtain ⟨ε', hε'0, hε'⟩ : ∃ v : ℚ, (0 : ℝ) < v ∧ ↑v < ε := exists_rat_btwn hε
-  norm_cast  at hε'0
+  norm_cast  at hε'0 
   obtain ⟨N, hN⟩ := padicNormE.defn (nth_hom_seq f_compat r) hε'0
   use N
   intro n hn
@@ -666,7 +666,7 @@ theorem lift_sub_val_mem_span (r : R) (n : ℕ) :
     lim_nth_hom_spec f_compat r _
       (show (0 : ℝ) < p ^ (-n : ℤ) from Nat.zpow_pos_of_pos hp_prime.1.Pos _)
   have := le_of_lt (hk (max n k) (le_max_right _ _))
-  rw [norm_le_pow_iff_mem_span_pow] at this
+  rw [norm_le_pow_iff_mem_span_pow] at this 
   dsimp [lift]
   rw [sub_eq_sub_add_sub (lim_nth_hom f_compat r) _ ↑(nth_hom f r (max n k))]
   apply Ideal.add_mem _ _ this
@@ -707,7 +707,7 @@ theorem lift_self (z : ℤ_[p]) : @lift p _ ℤ_[p] _ toZModPow zmod_cast_comp_t
   by
   show _ = RingHom.id _ z
   rw [@lift_unique p _ ℤ_[p] _ _ zmod_cast_comp_to_zmod_pow (RingHom.id ℤ_[p])]
-  intro ; rw [RingHom.comp_id]
+  intro; rw [RingHom.comp_id]
 #align padic_int.lift_self PadicInt.lift_self
 
 end lift
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Robert Y. Lewis
 
 ! This file was ported from Lean 3 source module number_theory.padics.ring_homs
-! leanprover-community/mathlib commit 565eb991e264d0db702722b4bde52ee5173c9950
+! leanprover-community/mathlib commit f60c6087a7275b72d5db3c5a1d0e19e35a429c0a
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.NumberTheory.Padics.PadicIntegers
 
 # Relating `ℤ_[p]` to `zmod (p ^ n)`
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file we establish connections between the `p`-adic integers $\mathbb{Z}_p$
 and the integers modulo powers of `p`, $\mathbb{Z}/p^n\mathbb{Z}$.
 
@@ -119,7 +122,7 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
   rwa [← r.cop.gcd_eq_one, Nat.dvd_gcd_iff, ← Int.coe_nat_dvd_left, ← Int.coe_nat_dvd]
 #align padic_int.is_unit_denom PadicInt.isUnit_den
 
-theorem norm_sub_mod_part_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
+theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ↑p ∣ r.num - r.num * r.den.gcdA p % p * ↑r.den :=
   by
   rw [← ZMod.int_cast_zmod_eq_zero_iff_dvd]
@@ -137,7 +140,7 @@ theorem norm_sub_mod_part_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
   apply ge_of_eq
   rw [← is_unit_iff]
   exact is_unit_denom r h
-#align padic_int.norm_sub_mod_part_aux PadicInt.norm_sub_mod_part_aux
+#align padic_int.norm_sub_mod_part_aux PadicInt.norm_sub_modPart_aux
 
 theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modPart p r : ℤ_[p])‖ < 1 :=
   by
Diff
@@ -44,7 +44,7 @@ which removes some boilerplate code.
 
 noncomputable section
 
-open Classical
+open scoped Classical
 
 open Nat LocalRing Padic
 
Diff
@@ -96,12 +96,6 @@ theorem modPart_nonneg : 0 ≤ modPart p r :=
 #align padic_int.mod_part_nonneg PadicInt.modPart_nonneg
 -/
 
-/- warning: padic_int.is_unit_denom -> PadicInt.isUnit_den is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat), (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (IsUnit.{0} (PadicInt p hp_prime) (Ring.toMonoid.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) (Rat.den r)))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat), (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (IsUnit.{0} (PadicInt p hp_prime) (MonoidWithZero.toMonoid.{0} (PadicInt p hp_prime) (Semiring.toMonoidWithZero.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Rat.den r)))
-Case conversion may be inaccurate. Consider using '#align padic_int.is_unit_denom PadicInt.isUnit_denₓ'. -/
 theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : ℤ_[p]) :=
   by
   rw [is_unit_iff]
@@ -125,12 +119,6 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
   rwa [← r.cop.gcd_eq_one, Nat.dvd_gcd_iff, ← Int.coe_nat_dvd_left, ← Int.coe_nat_dvd]
 #align padic_int.is_unit_denom PadicInt.isUnit_den
 
-/- warning: padic_int.norm_sub_mod_part_aux -> PadicInt.norm_sub_mod_part_aux is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat), (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Dvd.Dvd.{0} Int (semigroupDvd.{0} Int Int.semigroup) ((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))) p) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.hasSub) (Rat.num r) (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.hasMul) (HMod.hMod.{0, 0, 0} Int Int Int (instHMod.{0} Int Int.hasMod) (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.hasMul) (Rat.num r) (Nat.gcdA (Rat.den r) p)) ((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))) p)) ((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))) (Rat.den r)))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat), (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Dvd.dvd.{0} Int Int.instDvdInt (Nat.cast.{0} Int instNatCastInt p) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.instSubInt) (Rat.num r) (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.instMulInt) (HMod.hMod.{0, 0, 0} Int Int Int (instHMod.{0} Int Int.instModInt_1) (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.instMulInt) (Rat.num r) (Nat.gcdA (Rat.den r) p)) (Nat.cast.{0} Int instNatCastInt p)) (Nat.cast.{0} Int instNatCastInt (Rat.den r)))))
-Case conversion may be inaccurate. Consider using '#align padic_int.norm_sub_mod_part_aux PadicInt.norm_sub_mod_part_auxₓ'. -/
 theorem norm_sub_mod_part_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ↑p ∣ r.num - r.num * r.den.gcdA p % p * ↑r.den :=
   by
@@ -151,12 +139,6 @@ theorem norm_sub_mod_part_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
   exact is_unit_denom r h
 #align padic_int.norm_sub_mod_part_aux PadicInt.norm_sub_mod_part_aux
 
-/- warning: padic_int.norm_sub_mod_part -> PadicInt.norm_sub_modPart is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat) (h : LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))), LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.hasNorm p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) (Subtype.mk.{1} (Padic p hp_prime) (fun (x : Padic p hp_prime) => LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r) h) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Int (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Int (PadicInt p hp_prime) (Int.castCoe.{0} (PadicInt p hp_prime) (AddGroupWithOne.toHasIntCast.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))))) (PadicInt.modPart p r)))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat) (h : LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))), LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.instNormPadicInt p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) (Subtype.mk.{1} (Padic p hp_prime) (fun (x : Padic p hp_prime) => LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r) h) (Int.cast.{0} (PadicInt p hp_prime) (Ring.toIntCast.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))) (PadicInt.modPart p r)))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
-Case conversion may be inaccurate. Consider using '#align padic_int.norm_sub_mod_part PadicInt.norm_sub_modPartₓ'. -/
 theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modPart p r : ℤ_[p])‖ < 1 :=
   by
   let n := mod_part p r
@@ -171,20 +153,11 @@ theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modP
   exact norm_sub_mod_part_aux r h
 #align padic_int.norm_sub_mod_part PadicInt.norm_sub_modPart
 
-/- warning: padic_int.exists_mem_range_of_norm_rat_le_one -> PadicInt.exists_mem_range_of_norm_rat_le_one is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat) (h : LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))), Exists.{1} Int (fun (n : Int) => And (LE.le.{0} Int Int.hasLe (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) n) (And (LT.lt.{0} Int Int.hasLt n ((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))) p)) (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.hasNorm p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) (Subtype.mk.{1} (Padic p hp_prime) (fun (x : Padic p hp_prime) => LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r) h) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Int (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Int (PadicInt p hp_prime) (Int.castCoe.{0} (PadicInt p hp_prime) (AddGroupWithOne.toHasIntCast.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))))) n))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat) (h : LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))), Exists.{1} Int (fun (n : Int) => And (LE.le.{0} Int Int.instLEInt (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) n) (And (LT.lt.{0} Int Int.instLTInt n (Nat.cast.{0} Int instNatCastInt p)) (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.instNormPadicInt p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) (Subtype.mk.{1} (Padic p hp_prime) (fun (x : Padic p hp_prime) => LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r) h) (Int.cast.{0} (PadicInt p hp_prime) (Ring.toIntCast.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))) n))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))))
-Case conversion may be inaccurate. Consider using '#align padic_int.exists_mem_range_of_norm_rat_le_one PadicInt.exists_mem_range_of_norm_rat_le_oneₓ'. -/
 theorem exists_mem_range_of_norm_rat_le_one (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ∃ n : ℤ, 0 ≤ n ∧ n < p ∧ ‖(⟨r, h⟩ - n : ℤ_[p])‖ < 1 :=
   ⟨modPart p r, modPart_nonneg _, modPart_lt_p _, norm_sub_modPart _ h⟩
 #align padic_int.exists_mem_range_of_norm_rat_le_one PadicInt.exists_mem_range_of_norm_rat_le_one
 
-/- warning: padic_int.zmod_congr_of_sub_mem_span_aux -> PadicInt.zmod_congr_of_sub_mem_span_aux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align padic_int.zmod_congr_of_sub_mem_span_aux PadicInt.zmod_congr_of_sub_mem_span_auxₓ'. -/
 theorem zmod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
     (ha : x - a ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p]))
     (hb : x - b ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p])) : (a : ZMod (p ^ n)) = b :=
@@ -197,21 +170,12 @@ theorem zmod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
     Int.cast_sub, pow_p_dvd_int_iff] at this
 #align padic_int.zmod_congr_of_sub_mem_span_aux PadicInt.zmod_congr_of_sub_mem_span_aux
 
-/- warning: padic_int.zmod_congr_of_sub_mem_span -> PadicInt.zmod_congr_of_sub_mem_span is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align padic_int.zmod_congr_of_sub_mem_span PadicInt.zmod_congr_of_sub_mem_spanₓ'. -/
 theorem zmod_congr_of_sub_mem_span (n : ℕ) (x : ℤ_[p]) (a b : ℕ)
     (ha : x - a ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p]))
     (hb : x - b ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p])) : (a : ZMod (p ^ n)) = b := by
   simpa using zmod_congr_of_sub_mem_span_aux n x a b ha hb
 #align padic_int.zmod_congr_of_sub_mem_span PadicInt.zmod_congr_of_sub_mem_span
 
-/- warning: padic_int.zmod_congr_of_sub_mem_max_ideal -> PadicInt.zmod_congr_of_sub_mem_max_ideal is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime) (m : Nat) (n : Nat), (Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) m)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))) -> (Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) n)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))) -> (Eq.{1} (ZMod p) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (ZMod p) (HasLiftT.mk.{1, 1} Nat (ZMod p) (CoeTCₓ.coe.{1, 1} Nat (ZMod p) (Nat.castCoe.{0} (ZMod p) (AddMonoidWithOne.toNatCast.{0} (ZMod p) (AddGroupWithOne.toAddMonoidWithOne.{0} (ZMod p) (AddCommGroupWithOne.toAddGroupWithOne.{0} (ZMod p) (Ring.toAddCommGroupWithOne.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))))))) m) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (ZMod p) (HasLiftT.mk.{1, 1} Nat (ZMod p) (CoeTCₓ.coe.{1, 1} Nat (ZMod p) (Nat.castCoe.{0} (ZMod p) (AddMonoidWithOne.toNatCast.{0} (ZMod p) (AddGroupWithOne.toAddMonoidWithOne.{0} (ZMod p) (AddCommGroupWithOne.toAddGroupWithOne.{0} (ZMod p) (Ring.toAddCommGroupWithOne.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))))))) n))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime) (m : Nat) (n : Nat), (Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) m)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))) -> (Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) n)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))) -> (Eq.{1} (ZMod p) (Nat.cast.{0} (ZMod p) (Semiring.toNatCast.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime))))) m) (Nat.cast.{0} (ZMod p) (Semiring.toNatCast.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime))))) n))
-Case conversion may be inaccurate. Consider using '#align padic_int.zmod_congr_of_sub_mem_max_ideal PadicInt.zmod_congr_of_sub_mem_max_idealₓ'. -/
 theorem zmod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m ∈ maximalIdeal ℤ_[p])
     (hn : x - n ∈ maximalIdeal ℤ_[p]) : (m : ZMod p) = n :=
   by
@@ -226,12 +190,6 @@ theorem zmod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m 
 
 variable (x : ℤ_[p])
 
-/- warning: padic_int.exists_mem_range -> PadicInt.exists_mem_range is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), Exists.{1} Nat (fun (n : Nat) => And (LT.lt.{0} Nat Nat.hasLt n p) (Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) n)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), Exists.{1} Nat (fun (n : Nat) => And (LT.lt.{0} Nat instLTNat n p) (Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) n)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))))
-Case conversion may be inaccurate. Consider using '#align padic_int.exists_mem_range PadicInt.exists_mem_rangeₓ'. -/
 theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p] :=
   by
   simp only [maximal_ideal_eq_span_p, Ideal.mem_span_singleton, ← norm_lt_one_iff_dvd]
@@ -263,12 +221,6 @@ def zmodRepr : ℕ :=
 #align padic_int.zmod_repr PadicInt.zmodRepr
 -/
 
-/- warning: padic_int.zmod_repr_spec -> PadicInt.zmodRepr_spec is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), And (LT.lt.{0} Nat Nat.hasLt (PadicInt.zmodRepr p hp_prime x) p) (Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) (PadicInt.zmodRepr p hp_prime x))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime)))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), And (LT.lt.{0} Nat instLTNat (PadicInt.zmodRepr p hp_prime x) p) (Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt.zmodRepr p hp_prime x))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime)))
-Case conversion may be inaccurate. Consider using '#align padic_int.zmod_repr_spec PadicInt.zmodRepr_specₓ'. -/
 theorem zmodRepr_spec : zmodRepr x < p ∧ x - zmodRepr x ∈ maximalIdeal ℤ_[p] :=
   Classical.choose_spec (exists_mem_range x)
 #align padic_int.zmod_repr_spec PadicInt.zmodRepr_spec
@@ -279,19 +231,10 @@ theorem zmodRepr_lt_p : zmodRepr x < p :=
 #align padic_int.zmod_repr_lt_p PadicInt.zmodRepr_lt_p
 -/
 
-/- warning: padic_int.sub_zmod_repr_mem -> PadicInt.sub_zmodRepr_mem is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) (PadicInt.zmodRepr p hp_prime x))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt.zmodRepr p hp_prime x))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))
-Case conversion may be inaccurate. Consider using '#align padic_int.sub_zmod_repr_mem PadicInt.sub_zmodRepr_memₓ'. -/
 theorem sub_zmodRepr_mem : x - zmodRepr x ∈ maximalIdeal ℤ_[p] :=
   (zmodRepr_spec _).2
 #align padic_int.sub_zmod_repr_mem PadicInt.sub_zmodRepr_mem
 
-/- warning: padic_int.to_zmod_hom -> PadicInt.toZModHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod_hom PadicInt.toZModHomₓ'. -/
 /-- `to_zmod_hom` is an auxiliary constructor for creating ring homs from `ℤ_[p]` to `zmod v`.
 -/
 def toZModHom (v : ℕ) (f : ℤ_[p] → ℕ) (f_spec : ∀ x, x - f x ∈ (Ideal.span {v} : Ideal ℤ_[p]))
@@ -326,12 +269,6 @@ def toZModHom (v : ℕ) (f : ℤ_[p] → ℕ) (f_spec : ∀ x, x - f x ∈ (Idea
       ring
 #align padic_int.to_zmod_hom PadicInt.toZModHom
 
-/- warning: padic_int.to_zmod -> PadicInt.toZMod is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))
-Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod PadicInt.toZModₓ'. -/
 /-- `to_zmod` is a ring hom from `ℤ_[p]` to `zmod p`,
 with the equality `to_zmod x = (zmod_repr x : zmod p)`.
 -/
@@ -340,12 +277,6 @@ def toZMod : ℤ_[p] →+* ZMod p :=
     (by rw [← maximal_ideal_eq_span_p]; exact zmod_congr_of_sub_mem_max_ideal)
 #align padic_int.to_zmod PadicInt.toZMod
 
-/- warning: padic_int.to_zmod_spec -> PadicInt.toZMod_spec is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (z : PadicInt p hp_prime), Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) z ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (ZMod p) (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} (ZMod p) (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} (ZMod p) (PadicInt p hp_prime) (ZMod.hasCoeT.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) p))) (coeFn.{1, 1} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))) (fun (_x : RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))) => (PadicInt p hp_prime) -> (ZMod p)) (RingHom.hasCoeToFun.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))) (PadicInt.toZMod p hp_prime) z))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (z : PadicInt p hp_prime), Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) z (ZMod.cast.{0} (PadicInt p hp_prime) (Ring.toAddGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))) p (FunLike.coe.{1, 1, 1} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (PadicInt p hp_prime) (fun (_x : PadicInt p hp_prime) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PadicInt p hp_prime) => ZMod p) _x) (MulHomClass.toFunLike.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (PadicInt p hp_prime) (ZMod p) (NonUnitalNonAssocSemiring.toMul.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (NonUnitalNonAssocSemiring.toMul.{0} (ZMod p) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (ZMod p) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime))))))) (NonUnitalRingHomClass.toMulHomClass.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (PadicInt p hp_prime) (ZMod p) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (ZMod p) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (RingHomClass.toNonUnitalRingHomClass.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime))))) (RingHom.instRingHomClassRingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime))))))))) (PadicInt.toZMod p hp_prime) z))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))
-Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod_spec PadicInt.toZMod_specₓ'. -/
 /-- `z - (to_zmod z : ℤ_[p])` is contained in the maximal ideal of `ℤ_[p]`, for every `z : ℤ_[p]`.
 
 The coercion from `zmod p` to `ℤ_[p]` is `zmod.has_coe_t`,
@@ -366,12 +297,6 @@ theorem toZMod_spec (z : ℤ_[p]) : z - (toZMod z : ℤ_[p]) ∈ maximalIdeal 
   simpa only [zero_add] using zmod_repr_lt_p z
 #align padic_int.to_zmod_spec PadicInt.toZMod_spec
 
-/- warning: padic_int.ker_to_zmod -> PadicInt.ker_toZMod is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], Eq.{1} (Ideal.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (RingHom.ker.{0, 0, 0} (PadicInt p hp_prime) (ZMod p) (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) (Ring.toSemiring.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))) (RingHom.ringHomClass.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))) (PadicInt.toZMod p hp_prime)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], Eq.{1} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (RingHom.ker.{0, 0, 0} (PadicInt p hp_prime) (ZMod p) (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))) (RingHom.instRingHomClassRingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (PadicInt.toZMod p hp_prime)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))
-Case conversion may be inaccurate. Consider using '#align padic_int.ker_to_zmod PadicInt.ker_toZModₓ'. -/
 theorem ker_toZMod : (toZMod : ℤ_[p] →+* ZMod p).ker = maximalIdeal ℤ_[p] :=
   by
   ext x
@@ -450,12 +375,6 @@ theorem dvd_appr_sub_appr (x : ℤ_[p]) (m n : ℕ) (h : m ≤ n) : p ^ m ∣ x.
 #align padic_int.dvd_appr_sub_appr PadicInt.dvd_appr_sub_appr
 -/
 
-/- warning: padic_int.appr_spec -> PadicInt.appr_spec is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat) (x : PadicInt p hp_prime), Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) (PadicInt.appr p hp_prime x n))) (Ideal.span.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) (Singleton.singleton.{0, 0} (PadicInt p hp_prime) (Set.{0} (PadicInt p hp_prime)) (Set.hasSingleton.{0} (PadicInt p hp_prime)) (HPow.hPow.{0, 0, 0} (PadicInt p hp_prime) Nat (PadicInt p hp_prime) (instHPow.{0, 0} (PadicInt p hp_prime) Nat (Monoid.Pow.{0} (PadicInt p hp_prime) (Ring.toMonoid.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) p) n)))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat) (x : PadicInt p hp_prime), Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt.appr p hp_prime x n))) (Ideal.span.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (Singleton.singleton.{0, 0} (PadicInt p hp_prime) (Set.{0} (PadicInt p hp_prime)) (Set.instSingletonSet.{0} (PadicInt p hp_prime)) (HPow.hPow.{0, 0, 0} (PadicInt p hp_prime) Nat (PadicInt p hp_prime) (instHPow.{0, 0} (PadicInt p hp_prime) Nat (Monoid.Pow.{0} (PadicInt p hp_prime) (MonoidWithZero.toMonoid.{0} (PadicInt p hp_prime) (Semiring.toMonoidWithZero.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))))) (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) p) n)))
-Case conversion may be inaccurate. Consider using '#align padic_int.appr_spec PadicInt.appr_specₓ'. -/
 theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p]) :=
   by
   simp only [Ideal.mem_span_singleton]
@@ -495,12 +414,6 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
     exact (dvd_pow_self (p : ℤ_[p]) hc0.ne').mul_left _
 #align padic_int.appr_spec PadicInt.appr_spec
 
-/- warning: padic_int.to_zmod_pow -> PadicInt.toZModPow is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat), RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat), RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)))))
-Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod_pow PadicInt.toZModPowₓ'. -/
 /-- A ring hom from `ℤ_[p]` to `zmod (p^n)`, with underlying function `padic_int.appr n`. -/
 def toZModPow (n : ℕ) : ℤ_[p] →+* ZMod (p ^ n) :=
   toZModHom (p ^ n) (fun x => appr x n) (by intros ; convert appr_spec n _ using 1; simp)
@@ -511,12 +424,6 @@ def toZModPow (n : ℕ) : ℤ_[p] →+* ZMod (p ^ n) :=
       · simpa using hb)
 #align padic_int.to_zmod_pow PadicInt.toZModPow
 
-/- warning: padic_int.ker_to_zmod_pow -> PadicInt.ker_toZModPow is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat), Eq.{1} (Ideal.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (RingHom.ker.{0, 0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)))))) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)))) (RingHom.ringHomClass.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)))))) (PadicInt.toZModPow p hp_prime n)) (Ideal.span.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) (Singleton.singleton.{0, 0} (PadicInt p hp_prime) (Set.{0} (PadicInt p hp_prime)) (Set.hasSingleton.{0} (PadicInt p hp_prime)) (HPow.hPow.{0, 0, 0} (PadicInt p hp_prime) Nat (PadicInt p hp_prime) (instHPow.{0, 0} (PadicInt p hp_prime) Nat (Monoid.Pow.{0} (PadicInt p hp_prime) (Ring.toMonoid.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) p) n)))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat), Eq.{1} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (RingHom.ker.{0, 0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)))))) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)))) (RingHom.instRingHomClassRingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)))))) (PadicInt.toZModPow p hp_prime n)) (Ideal.span.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (Singleton.singleton.{0, 0} (PadicInt p hp_prime) (Set.{0} (PadicInt p hp_prime)) (Set.instSingletonSet.{0} (PadicInt p hp_prime)) (HPow.hPow.{0, 0, 0} (PadicInt p hp_prime) Nat (PadicInt p hp_prime) (instHPow.{0, 0} (PadicInt p hp_prime) Nat (Monoid.Pow.{0} (PadicInt p hp_prime) (MonoidWithZero.toMonoid.{0} (PadicInt p hp_prime) (Semiring.toMonoidWithZero.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))))) (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) p) n)))
-Case conversion may be inaccurate. Consider using '#align padic_int.ker_to_zmod_pow PadicInt.ker_toZModPowₓ'. -/
 theorem ker_toZModPow (n : ℕ) : (toZModPow n : ℤ_[p] →+* ZMod (p ^ n)).ker = Ideal.span {p ^ n} :=
   by
   ext x
@@ -534,12 +441,6 @@ theorem ker_toZModPow (n : ℕ) : (toZModPow n : ℤ_[p] →+* ZMod (p ^ n)).ker
     apply appr_spec
 #align padic_int.ker_to_zmod_pow PadicInt.ker_toZModPow
 
-/- warning: padic_int.zmod_cast_comp_to_zmod_pow -> PadicInt.zmod_cast_comp_toZModPow is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (m : Nat) (n : Nat) (h : LE.le.{0} Nat Nat.hasLe m n), Eq.{1} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)))))) (RingHom.comp.{0, 0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m) (pow_dvd_pow.{0} Nat Nat.monoid p m n h) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m))) (PadicInt.toZModPow p hp_prime n)) (PadicInt.toZModPow p hp_prime m)
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (m : Nat) (n : Nat) (h : LE.le.{0} Nat instLENat m n), Eq.{1} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)))))) (RingHom.comp.{0, 0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m) (pow_dvd_pow.{0} Nat Nat.monoid p m n h) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m))) (PadicInt.toZModPow p hp_prime n)) (PadicInt.toZModPow p hp_prime m)
-Case conversion may be inaccurate. Consider using '#align padic_int.zmod_cast_comp_to_zmod_pow PadicInt.zmod_cast_comp_toZModPowₓ'. -/
 @[simp]
 theorem zmod_cast_comp_toZModPow (m n : ℕ) (h : m ≤ n) :
     (ZMod.castHom (pow_dvd_pow p h) (ZMod (p ^ m))).comp (toZModPow n) = toZModPow m :=
@@ -559,20 +460,11 @@ theorem zmod_cast_comp_toZModPow (m n : ℕ) (h : m ≤ n) :
   · infer_instance
 #align padic_int.zmod_cast_comp_to_zmod_pow PadicInt.zmod_cast_comp_toZModPow
 
-/- warning: padic_int.cast_to_zmod_pow -> PadicInt.cast_toZModPow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align padic_int.cast_to_zmod_pow PadicInt.cast_toZModPowₓ'. -/
 @[simp]
 theorem cast_toZModPow (m n : ℕ) (h : m ≤ n) (x : ℤ_[p]) : ↑(toZModPow n x) = toZModPow m x := by
   rw [← zmod_cast_comp_to_zmod_pow _ _ h]; rfl
 #align padic_int.cast_to_zmod_pow PadicInt.cast_toZModPow
 
-/- warning: padic_int.dense_range_nat_cast -> PadicInt.denseRange_nat_cast is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], DenseRange.{0, 0} (PadicInt p hp_prime) (UniformSpace.toTopologicalSpace.{0} (PadicInt p hp_prime) (PseudoMetricSpace.toUniformSpace.{0} (PadicInt p hp_prime) (SeminormedRing.toPseudoMetricSpace.{0} (PadicInt p hp_prime) (SeminormedCommRing.toSemiNormedRing.{0} (PadicInt p hp_prime) (NormedCommRing.toSeminormedCommRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) Nat (Nat.cast.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], DenseRange.{0, 0} (PadicInt p hp_prime) (UniformSpace.toTopologicalSpace.{0} (PadicInt p hp_prime) (PseudoMetricSpace.toUniformSpace.{0} (PadicInt p hp_prime) (SeminormedRing.toPseudoMetricSpace.{0} (PadicInt p hp_prime) (SeminormedCommRing.toSeminormedRing.{0} (PadicInt p hp_prime) (NormedCommRing.toSeminormedCommRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))))) Nat (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))
-Case conversion may be inaccurate. Consider using '#align padic_int.dense_range_nat_cast PadicInt.denseRange_nat_castₓ'. -/
 theorem denseRange_nat_cast : DenseRange (Nat.cast : ℕ → ℤ_[p]) :=
   by
   intro x
@@ -586,12 +478,6 @@ theorem denseRange_nat_cast : DenseRange (Nat.cast : ℕ → ℤ_[p]) :=
   apply appr_spec
 #align padic_int.dense_range_nat_cast PadicInt.denseRange_nat_cast
 
-/- warning: padic_int.dense_range_int_cast -> PadicInt.denseRange_int_cast is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], DenseRange.{0, 0} (PadicInt p hp_prime) (UniformSpace.toTopologicalSpace.{0} (PadicInt p hp_prime) (PseudoMetricSpace.toUniformSpace.{0} (PadicInt p hp_prime) (SeminormedRing.toPseudoMetricSpace.{0} (PadicInt p hp_prime) (SeminormedCommRing.toSemiNormedRing.{0} (PadicInt p hp_prime) (NormedCommRing.toSeminormedCommRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) Int (Int.cast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toHasIntCast.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], DenseRange.{0, 0} (PadicInt p hp_prime) (UniformSpace.toTopologicalSpace.{0} (PadicInt p hp_prime) (PseudoMetricSpace.toUniformSpace.{0} (PadicInt p hp_prime) (SeminormedRing.toPseudoMetricSpace.{0} (PadicInt p hp_prime) (SeminormedCommRing.toSeminormedRing.{0} (PadicInt p hp_prime) (NormedCommRing.toSeminormedCommRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))))) Int (Int.cast.{0} (PadicInt p hp_prime) (Ring.toIntCast.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))))
-Case conversion may be inaccurate. Consider using '#align padic_int.dense_range_int_cast PadicInt.denseRange_int_castₓ'. -/
 theorem denseRange_int_cast : DenseRange (Int.cast : ℤ → ℤ_[p]) :=
   by
   intro x
@@ -627,12 +513,6 @@ def nthHom (r : R) : ℕ → ℤ := fun n => (f n r : ZMod (p ^ n)).val
 #align padic_int.nth_hom PadicInt.nthHom
 -/
 
-/- warning: padic_int.nth_hom_zero -> PadicInt.nthHom_zero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] (f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))), Eq.{1} (Nat -> Int) (PadicInt.nthHom.{u1} p R _inst_1 f (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))))) (OfNat.ofNat.{0} (Nat -> Int) 0 (OfNat.mk.{0} (Nat -> Int) 0 (Zero.zero.{0} (Nat -> Int) (Pi.instZero.{0, 0} Nat (fun (ᾰ : Nat) => Int) (fun (i : Nat) => Int.hasZero)))))
-but is expected to have type
-  forall {p : Nat} {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] (f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))), Eq.{1} (Nat -> Int) (PadicInt.nthHom.{u1} p R _inst_1 f (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R _inst_1))))) (OfNat.ofNat.{0} (Nat -> Int) 0 (Zero.toOfNat0.{0} (Nat -> Int) (Pi.instZero.{0, 0} Nat (fun (a._@.Mathlib.NumberTheory.Padics.RingHoms._hyg.5670 : Nat) => Int) (fun (i : Nat) => CommMonoidWithZero.toZero.{0} Int (CancelCommMonoidWithZero.toCommMonoidWithZero.{0} Int (IsDomain.toCancelCommMonoidWithZero.{0} Int Int.instCommSemiringInt (LinearOrderedRing.isDomain.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))))
-Case conversion may be inaccurate. Consider using '#align padic_int.nth_hom_zero PadicInt.nthHom_zeroₓ'. -/
 @[simp]
 theorem nthHom_zero : nthHom f 0 = 0 := by simp [nth_hom] <;> rfl
 #align padic_int.nth_hom_zero PadicInt.nthHom_zero
@@ -643,12 +523,6 @@ include hp_prime
 
 include f_compat
 
-/- warning: padic_int.pow_dvd_nth_hom_sub -> PadicInt.pow_dvd_nthHom_sub is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) -> (forall (r : R) (i : Nat) (j : Nat), (LE.le.{0} Nat Nat.hasLe i j) -> (Dvd.Dvd.{0} Int (semigroupDvd.{0} Int Int.semigroup) (HPow.hPow.{0, 0, 0} Int Nat Int (instHPow.{0, 0} Int Nat (Monoid.Pow.{0} Int Int.monoid)) ((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))) p) i) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.hasSub) (PadicInt.nthHom.{u1} p R _inst_1 f r j) (PadicInt.nthHom.{u1} p R _inst_1 f r i))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) -> (forall (r : R) (i : Nat) (j : Nat), (LE.le.{0} Nat instLENat i j) -> (Dvd.dvd.{0} Int Int.instDvdInt (HPow.hPow.{0, 0, 0} Int Nat Int Int.instHPowIntNat (Nat.cast.{0} Int instNatCastInt p) i) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.instSubInt) (PadicInt.nthHom.{u1} p R _inst_1 f r j) (PadicInt.nthHom.{u1} p R _inst_1 f r i))))
-Case conversion may be inaccurate. Consider using '#align padic_int.pow_dvd_nth_hom_sub PadicInt.pow_dvd_nthHom_subₓ'. -/
 theorem pow_dvd_nthHom_sub (r : R) (i j : ℕ) (h : i ≤ j) : ↑p ^ i ∣ nthHom f r j - nthHom f r i :=
   by
   specialize f_compat i j h
@@ -658,12 +532,6 @@ theorem pow_dvd_nthHom_sub (r : R) (i j : ℕ) (h : i ≤ j) : ↑p ^ i ∣ nthH
   simp only [ZMod.cast_id, ZMod.castHom_apply, sub_self, ZMod.nat_cast_val, ZMod.int_cast_cast]
 #align padic_int.pow_dvd_nth_hom_sub PadicInt.pow_dvd_nthHom_sub
 
-/- warning: padic_int.is_cau_seq_nth_hom -> PadicInt.isCauSeq_nthHom is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) -> (forall (r : R), IsCauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (fun (n : Nat) => (fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Rat (HasLiftT.mk.{1, 1} Int Rat (CoeTCₓ.coe.{1, 1} Int Rat (Int.castCoe.{0} Rat Rat.hasIntCast))) (PadicInt.nthHom.{u1} p R _inst_1 f r n)))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) -> (forall (r : R), IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (fun (n : Nat) => Int.cast.{0} Rat Rat.instIntCastRat (PadicInt.nthHom.{u1} p R _inst_1 f r n)))
-Case conversion may be inaccurate. Consider using '#align padic_int.is_cau_seq_nth_hom PadicInt.isCauSeq_nthHomₓ'. -/
 theorem isCauSeq_nthHom (r : R) : IsCauSeq (padicNorm p) fun n => nthHom f r n :=
   by
   intro ε hε
@@ -686,12 +554,6 @@ def nthHomSeq (r : R) : PadicSeq p :=
 #align padic_int.nth_hom_seq PadicInt.nthHomSeq
 -/
 
-/- warning: padic_int.nth_hom_seq_one -> PadicInt.nthHomSeq_one is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)), HasEquivₓ.Equiv.{1} (PadicSeq p) (setoidHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_1))))))) (OfNat.ofNat.{0} (PadicSeq p) 1 (OfNat.mk.{0} (PadicSeq p) 1 (One.one.{0} (PadicSeq p) (CauSeq.hasOne.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime)))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)), HasEquiv.Equiv.{1, 0} (PadicSeq p) (instHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocSemiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{0} (PadicSeq p) 1 (One.toOfNat1.{0} (PadicSeq p) (CauSeq.instOneCauSeq.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))))
-Case conversion may be inaccurate. Consider using '#align padic_int.nth_hom_seq_one PadicInt.nthHomSeq_oneₓ'. -/
 -- this lemma ran into issues after changing to `ne_zero` and I'm not sure why.
 theorem nthHomSeq_one : nthHomSeq f_compat 1 ≈ 1 :=
   by
@@ -704,12 +566,6 @@ theorem nthHomSeq_one : nthHomSeq f_compat 1 ≈ 1 :=
   rw [ZMod.cast_eq_val, ZMod.val_one, Nat.cast_one]
 #align padic_int.nth_hom_seq_one PadicInt.nthHomSeq_one
 
-/- warning: padic_int.nth_hom_seq_add -> PadicInt.nthHomSeq_add is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) (r : R) (s : R), HasEquivₓ.Equiv.{1} (PadicSeq p) (setoidHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HAdd.hAdd.{0, 0, 0} (PadicSeq p) (PadicSeq p) (PadicSeq p) (instHAdd.{0} (PadicSeq p) (CauSeq.hasAdd.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) (r : R) (s : R), HasEquiv.Equiv.{1, 0} (PadicSeq p) (instHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HAdd.hAdd.{0, 0, 0} (PadicSeq p) (PadicSeq p) (PadicSeq p) (instHAdd.{0} (PadicSeq p) (CauSeq.instAddCauSeq.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
-Case conversion may be inaccurate. Consider using '#align padic_int.nth_hom_seq_add PadicInt.nthHomSeq_addₓ'. -/
 theorem nthHomSeq_add (r s : R) :
     nthHomSeq f_compat (r + s) ≈ nthHomSeq f_compat r + nthHomSeq f_compat s :=
   by
@@ -727,12 +583,6 @@ theorem nthHomSeq_add (r s : R) :
   · infer_instance
 #align padic_int.nth_hom_seq_add PadicInt.nthHomSeq_add
 
-/- warning: padic_int.nth_hom_seq_mul -> PadicInt.nthHomSeq_mul is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) (r : R) (s : R), HasEquivₓ.Equiv.{1} (PadicSeq p) (setoidHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HMul.hMul.{0, 0, 0} (PadicSeq p) (PadicSeq p) (PadicSeq p) (instHMul.{0} (PadicSeq p) (CauSeq.hasMul.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) (r : R) (s : R), HasEquiv.Equiv.{1, 0} (PadicSeq p) (instHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))) r s)) (HMul.hMul.{0, 0, 0} (PadicSeq p) (PadicSeq p) (PadicSeq p) (instHMul.{0} (PadicSeq p) (CauSeq.instMulCauSeq.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
-Case conversion may be inaccurate. Consider using '#align padic_int.nth_hom_seq_mul PadicInt.nthHomSeq_mulₓ'. -/
 theorem nthHomSeq_mul (r s : R) :
     nthHomSeq f_compat (r * s) ≈ nthHomSeq f_compat r * nthHomSeq f_compat s :=
   by
@@ -760,12 +610,6 @@ def limNthHom (r : R) : ℤ_[p] :=
 #align padic_int.lim_nth_hom PadicInt.limNthHom
 -/
 
-/- warning: padic_int.lim_nth_hom_spec -> PadicInt.limNthHom_spec is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) (r : R) (ε : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (n : Nat), (GE.ge.{0} Nat Nat.hasLe n N) -> (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.hasNorm p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Int (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Int (PadicInt p hp_prime) (Int.castCoe.{0} (PadicInt p hp_prime) (AddGroupWithOne.toHasIntCast.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))))) (PadicInt.nthHom.{u1} p R _inst_1 f r n)))) ε)))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) (r : R) (ε : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (n : Nat), (GE.ge.{0} Nat instLENat n N) -> (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.instNormPadicInt p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (Int.cast.{0} (PadicInt p hp_prime) (Ring.toIntCast.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))) (PadicInt.nthHom.{u1} p R _inst_1 f r n)))) ε)))
-Case conversion may be inaccurate. Consider using '#align padic_int.lim_nth_hom_spec PadicInt.limNthHom_specₓ'. -/
 theorem limNthHom_spec (r : R) :
     ∀ ε : ℝ, 0 < ε → ∃ N : ℕ, ∀ n ≥ N, ‖limNthHom f_compat r - nthHom f r n‖ < ε :=
   by
@@ -781,53 +625,23 @@ theorem limNthHom_spec (r : R) :
   exact hN _ hn
 #align padic_int.lim_nth_hom_spec PadicInt.limNthHom_spec
 
-/- warning: padic_int.lim_nth_hom_zero -> PadicInt.limNthHom_zero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))))) (OfNat.ofNat.{0} (PadicInt p hp_prime) 0 (OfNat.mk.{0} (PadicInt p hp_prime) 0 (Zero.zero.{0} (PadicInt p hp_prime) (PadicInt.hasZero p hp_prime))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R _inst_1))))) (OfNat.ofNat.{0} (PadicInt p hp_prime) 0 (Zero.toOfNat0.{0} (PadicInt p hp_prime) (PadicInt.instZeroPadicInt p hp_prime)))
-Case conversion may be inaccurate. Consider using '#align padic_int.lim_nth_hom_zero PadicInt.limNthHom_zeroₓ'. -/
 theorem limNthHom_zero : limNthHom f_compat 0 = 0 := by simp [lim_nth_hom] <;> rfl
 #align padic_int.lim_nth_hom_zero PadicInt.limNthHom_zero
 
-/- warning: padic_int.lim_nth_hom_one -> PadicInt.limNthHom_one is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_1))))))) (OfNat.ofNat.{0} (PadicInt p hp_prime) 1 (OfNat.mk.{0} (PadicInt p hp_prime) 1 (One.one.{0} (PadicInt p hp_prime) (PadicInt.hasOne p hp_prime))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocSemiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{0} (PadicInt p hp_prime) 1 (One.toOfNat1.{0} (PadicInt p hp_prime) (PadicInt.instOnePadicInt p hp_prime)))
-Case conversion may be inaccurate. Consider using '#align padic_int.lim_nth_hom_one PadicInt.limNthHom_oneₓ'. -/
 theorem limNthHom_one : limNthHom f_compat 1 = 1 :=
   Subtype.ext <| Quot.sound <| nthHomSeq_one _
 #align padic_int.lim_nth_hom_one PadicInt.limNthHom_one
 
-/- warning: padic_int.lim_nth_hom_add -> PadicInt.limNthHom_add is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) (r : R) (s : R), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HAdd.hAdd.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHAdd.{0} (PadicInt p hp_prime) (PadicInt.hasAdd p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) (r : R) (s : R), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HAdd.hAdd.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHAdd.{0} (PadicInt p hp_prime) (PadicInt.instAddPadicInt p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
-Case conversion may be inaccurate. Consider using '#align padic_int.lim_nth_hom_add PadicInt.limNthHom_addₓ'. -/
 theorem limNthHom_add (r s : R) :
     limNthHom f_compat (r + s) = limNthHom f_compat r + limNthHom f_compat s :=
   Subtype.ext <| Quot.sound <| nthHomSeq_add _ _ _
 #align padic_int.lim_nth_hom_add PadicInt.limNthHom_add
 
-/- warning: padic_int.lim_nth_hom_mul -> PadicInt.limNthHom_mul is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) (r : R) (s : R), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HMul.hMul.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHMul.{0} (PadicInt p hp_prime) (PadicInt.hasMul p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) (r : R) (s : R), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))) r s)) (HMul.hMul.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHMul.{0} (PadicInt p hp_prime) (PadicInt.instMulPadicInt p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
-Case conversion may be inaccurate. Consider using '#align padic_int.lim_nth_hom_mul PadicInt.limNthHom_mulₓ'. -/
 theorem limNthHom_mul (r s : R) :
     limNthHom f_compat (r * s) = limNthHom f_compat r * limNthHom f_compat s :=
   Subtype.ext <| Quot.sound <| nthHomSeq_mul _ _ _
 #align padic_int.lim_nth_hom_mul PadicInt.limNthHom_mul
 
-/- warning: padic_int.lift -> PadicInt.lift is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (PadicInt.lift._proof_1 p k1)) (f k2)) (f k1)) -> (RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) -> (RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))
-Case conversion may be inaccurate. Consider using '#align padic_int.lift PadicInt.liftₓ'. -/
 -- TODO: generalize this to arbitrary complete discrete valuation rings
 /-- `lift f_compat` is the limit of a sequence `f` of compatible ring homs `R →+* zmod (p^k)`,
 with the equality `lift f_compat r = padic_int.lim_nth_hom f_compat r`.
@@ -842,9 +656,6 @@ def lift : R →+* ℤ_[p] where
 
 omit f_compat
 
-/- warning: padic_int.lift_sub_val_mem_span -> PadicInt.lift_sub_val_mem_span is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align padic_int.lift_sub_val_mem_span PadicInt.lift_sub_val_mem_spanₓ'. -/
 theorem lift_sub_val_mem_span (r : R) (n : ℕ) :
     lift f_compat r - (f n r).val ∈ (Ideal.span {↑p ^ n} : Ideal ℤ_[p]) :=
   by
@@ -874,9 +685,6 @@ theorem lift_spec (n : ℕ) : (toZModPow n).comp (lift f_compat) = f n :=
 #align padic_int.lift_spec PadicInt.lift_spec
 -/
 
-/- warning: padic_int.lift_unique -> PadicInt.lift_unique is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align padic_int.lift_unique PadicInt.lift_uniqueₓ'. -/
 /-- One part of the universal property of `ℤ_[p]` as a projective limit.
 See also `padic_int.lift_spec`.
 -/
@@ -891,12 +699,6 @@ theorem lift_unique (g : R →+* ℤ_[p]) (hg : ∀ n, (toZModPow n).comp g = f
     RingHom.map_sub, ← RingHom.comp_apply, ← RingHom.comp_apply, lift_spec, hg, sub_self]
 #align padic_int.lift_unique PadicInt.lift_unique
 
-/- warning: padic_int.lift_self -> PadicInt.lift_self is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (z : PadicInt p hp_prime), Eq.{1} (PadicInt p hp_prime) (coeFn.{1, 1} (RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) (fun (_x : RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) => (PadicInt p hp_prime) -> (PadicInt p hp_prime)) (RingHom.hasCoeToFun.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) (PadicInt.lift.{0} p hp_prime (PadicInt p hp_prime) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (PadicInt.toZModPow p hp_prime) (PadicInt.zmod_cast_comp_toZModPow p hp_prime)) z) z
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (z : PadicInt p hp_prime), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PadicInt p hp_prime) => PadicInt p hp_prime) z) (FunLike.coe.{1, 1, 1} (RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (PadicInt p hp_prime) (fun (_x : PadicInt p hp_prime) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PadicInt p hp_prime) => PadicInt p hp_prime) _x) (MulHomClass.toFunLike.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (PadicInt p hp_prime) (PadicInt p hp_prime) (NonUnitalNonAssocSemiring.toMul.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (NonUnitalNonAssocSemiring.toMul.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (NonUnitalRingHomClass.toMulHomClass.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (PadicInt p hp_prime) (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (RingHomClass.toNonUnitalRingHomClass.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (RingHom.instRingHomClassRingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))))) (PadicInt.lift.{0} p hp_prime (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt.toZModPow p hp_prime) (PadicInt.zmod_cast_comp_toZModPow p hp_prime)) z) z
-Case conversion may be inaccurate. Consider using '#align padic_int.lift_self PadicInt.lift_selfₓ'. -/
 @[simp]
 theorem lift_self (z : ℤ_[p]) : @lift p _ ℤ_[p] _ toZModPow zmod_cast_comp_toZModPow z = z :=
   by
@@ -907,9 +709,6 @@ theorem lift_self (z : ℤ_[p]) : @lift p _ ℤ_[p] _ toZModPow zmod_cast_comp_t
 
 end lift
 
-/- warning: padic_int.ext_of_to_zmod_pow -> PadicInt.ext_of_toZModPow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align padic_int.ext_of_to_zmod_pow PadicInt.ext_of_toZModPowₓ'. -/
 theorem ext_of_toZModPow {x y : ℤ_[p]} : (∀ n, toZModPow n x = toZModPow n y) ↔ x = y :=
   by
   constructor
@@ -919,12 +718,6 @@ theorem ext_of_toZModPow {x y : ℤ_[p]} : (∀ n, toZModPow n x = toZModPow n y
   · rintro rfl _; rfl
 #align padic_int.ext_of_to_zmod_pow PadicInt.ext_of_toZModPow
 
-/- warning: padic_int.to_zmod_pow_eq_iff_ext -> PadicInt.toZModPow_eq_iff_ext is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {g : RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))} {g' : RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))}, Iff (forall (n : Nat), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)))))) (RingHom.comp.{u1, 0, 0} R (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n))))) (PadicInt.toZModPow p hp_prime n) g) (RingHom.comp.{u1, 0, 0} R (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n))))) (PadicInt.toZModPow p hp_prime n) g')) (Eq.{succ u1} (RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) g g')
-but is expected to have type
-  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {g : RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))} {g' : RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))}, Iff (forall (n : Nat), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)))))) (RingHom.comp.{u1, 0, 0} R (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n))))) (PadicInt.toZModPow p hp_prime n) g) (RingHom.comp.{u1, 0, 0} R (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n))))) (PadicInt.toZModPow p hp_prime n) g')) (Eq.{succ u1} (RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) g g')
-Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod_pow_eq_iff_ext PadicInt.toZModPow_eq_iff_extₓ'. -/
 theorem toZModPow_eq_iff_ext {R : Type _} [NonAssocSemiring R] {g g' : R →+* ℤ_[p]} :
     (∀ n, (toZModPow n).comp g = (toZModPow n).comp g') ↔ g = g' :=
   by
Diff
@@ -108,9 +108,7 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
   apply le_antisymm (r.denom : ℤ_[p]).2
   rw [← not_lt, val_eq_coe, coe_nat_cast]
   intro norm_denom_lt
-  have hr : ‖(r * r.denom : ℚ_[p])‖ = ‖(r.num : ℚ_[p])‖ :=
-    by
-    rw_mod_cast [@Rat.mul_den_eq_num r]
+  have hr : ‖(r * r.denom : ℚ_[p])‖ = ‖(r.num : ℚ_[p])‖ := by rw_mod_cast [@Rat.mul_den_eq_num r];
     rfl
   rw [padicNormE.mul] at hr
   have key : ‖(r.num : ℚ_[p])‖ < 1 := by
@@ -122,8 +120,7 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
   have : ↑p ∣ r.num ∧ (p : ℤ) ∣ r.denom :=
     by
     simp only [← norm_int_lt_one_iff_dvd, ← padic_norm_e_of_padic_int]
-    norm_cast
-    exact ⟨key, norm_denom_lt⟩
+    norm_cast; exact ⟨key, norm_denom_lt⟩
   apply hp_prime.1.not_dvd_one
   rwa [← r.cop.gcd_eq_one, Nat.dvd_gcd_iff, ← Int.coe_nat_dvd_left, ← Int.coe_nat_dvd]
 #align padic_int.is_unit_denom PadicInt.isUnit_den
@@ -145,8 +142,7 @@ theorem norm_sub_mod_part_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
   push_cast
   rw [mul_right_comm, mul_assoc, ← this]
   suffices rdcp : r.denom.coprime p
-  · rw [rdcp.gcd_eq_one]
-    simp only [mul_one, cast_one, sub_self]
+  · rw [rdcp.gcd_eq_one]; simp only [mul_one, cast_one, sub_self]
   apply coprime.symm
   apply (coprime_or_dvd_of_prime hp_prime.1 _).resolve_right
   rw [← Int.coe_nat_dvd, ← norm_int_lt_one_iff_dvd, not_lt]
@@ -171,8 +167,7 @@ theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modP
     simp only [sub_mul, Int.cast_ofNat, eq_intCast, Int.cast_mul, sub_left_inj, Int.cast_sub]
     apply Subtype.coe_injective
     simp only [coe_mul, Subtype.coe_mk, coe_nat_cast]
-    rw_mod_cast [@Rat.mul_den_eq_num r]
-    rfl
+    rw_mod_cast [@Rat.mul_den_eq_num r]; rfl
   exact norm_sub_mod_part_aux r h
 #align padic_int.norm_sub_mod_part PadicInt.norm_sub_modPart
 
@@ -251,8 +246,7 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
   obtain ⟨n, hzn, hnp, hn⟩ := exists_mem_range_of_norm_rat_le_one r H
   lift n to ℕ using hzn
   use n
-  constructor
-  · exact_mod_cast hnp
+  constructor; · exact_mod_cast hnp
   simp only [norm_def, coe_sub, Subtype.coe_mk, coe_nat_cast] at hn⊢
   rw [show (x - n : ℚ_[p]) = x - r + (r - n) by ring]
   apply lt_of_le_of_lt (padicNormE.nonarchimedean _ _)
@@ -342,13 +336,8 @@ Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod Padi
 with the equality `to_zmod x = (zmod_repr x : zmod p)`.
 -/
 def toZMod : ℤ_[p] →+* ZMod p :=
-  toZModHom p zmodRepr
-    (by
-      rw [← maximal_ideal_eq_span_p]
-      exact sub_zmod_repr_mem)
-    (by
-      rw [← maximal_ideal_eq_span_p]
-      exact zmod_congr_of_sub_mem_max_ideal)
+  toZModHom p zmodRepr (by rw [← maximal_ideal_eq_span_p]; exact sub_zmod_repr_mem)
+    (by rw [← maximal_ideal_eq_span_p]; exact zmod_congr_of_sub_mem_max_ideal)
 #align padic_int.to_zmod PadicInt.toZMod
 
 /- warning: padic_int.to_zmod_spec -> PadicInt.toZMod_spec is a dubious translation:
@@ -394,8 +383,7 @@ theorem ker_toZMod : (toZMod : ℤ_[p] →+* ZMod p).ker = maximalIdeal ℤ_[p]
     rw [← sub_zero x] at h
     dsimp [to_zmod, to_zmod_hom]
     convert zmod_congr_of_sub_mem_max_ideal x _ 0 _ h
-    norm_cast
-    apply sub_zmod_repr_mem
+    norm_cast; apply sub_zmod_repr_mem
 #align padic_int.ker_to_zmod PadicInt.ker_toZMod
 
 #print PadicInt.appr /-
@@ -476,16 +464,11 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
   intro x
   dsimp only [appr]
   split_ifs with h
-  · rw [h]
-    apply dvd_zero
-  push_cast
-  rw [sub_add_eq_sub_sub]
+  · rw [h]; apply dvd_zero
+  push_cast ; rw [sub_add_eq_sub_sub]
   obtain ⟨c, hc⟩ := ih x
   simp only [map_natCast, ZMod.nat_cast_self, RingHom.map_pow, RingHom.map_mul, ZMod.nat_cast_val]
-  have hc' : c ≠ 0 := by
-    rintro rfl
-    simp only [MulZeroClass.mul_zero] at hc
-    contradiction
+  have hc' : c ≠ 0 := by rintro rfl; simp only [MulZeroClass.mul_zero] at hc; contradiction
   conv_rhs =>
     congr
     simp only [hc]
@@ -520,11 +503,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod_pow PadicInt.toZModPowₓ'. -/
 /-- A ring hom from `ℤ_[p]` to `zmod (p^n)`, with underlying function `padic_int.appr n`. -/
 def toZModPow (n : ℕ) : ℤ_[p] →+* ZMod (p ^ n) :=
-  toZModHom (p ^ n) (fun x => appr x n)
-    (by
-      intros
-      convert appr_spec n _ using 1
-      simp)
+  toZModHom (p ^ n) (fun x => appr x n) (by intros ; convert appr_spec n _ using 1; simp)
     (by
       intro x a b ha hb
       apply zmod_congr_of_sub_mem_span n x a b
@@ -544,9 +523,7 @@ theorem ker_toZModPow (n : ℕ) : (toZModPow n : ℤ_[p] →+* ZMod (p ^ n)).ker
   rw [RingHom.mem_ker]
   constructor
   · intro h
-    suffices x.appr n = 0 by
-      convert appr_spec n x
-      simp only [this, sub_zero, cast_zero]
+    suffices x.appr n = 0 by convert appr_spec n x; simp only [this, sub_zero, cast_zero]
     dsimp [to_zmod_pow, to_zmod_hom] at h
     rw [ZMod.nat_cast_zmod_eq_zero_iff_dvd] at h
     apply eq_zero_of_dvd_of_lt h (appr_lt _ _)
@@ -574,8 +551,7 @@ theorem zmod_cast_comp_toZModPow (m n : ℕ) (h : m ≤ n) :
   simp only [to_zmod_pow, to_zmod_hom, RingHom.coe_mk]
   rw [ZMod.cast_nat_cast (pow_dvd_pow p h),
     zmod_congr_of_sub_mem_span m (x.appr n) (x.appr n) (x.appr m)]
-  · rw [sub_self]
-    apply Ideal.zero_mem _
+  · rw [sub_self]; apply Ideal.zero_mem _
   · rw [Ideal.mem_span_singleton]
     rcases dvd_appr_sub_appr x m n h with ⟨c, hc⟩
     use c
@@ -587,10 +563,8 @@ theorem zmod_cast_comp_toZModPow (m n : ℕ) (h : m ≤ n) :
 <too large>
 Case conversion may be inaccurate. Consider using '#align padic_int.cast_to_zmod_pow PadicInt.cast_toZModPowₓ'. -/
 @[simp]
-theorem cast_toZModPow (m n : ℕ) (h : m ≤ n) (x : ℤ_[p]) : ↑(toZModPow n x) = toZModPow m x :=
-  by
-  rw [← zmod_cast_comp_to_zmod_pow _ _ h]
-  rfl
+theorem cast_toZModPow (m n : ℕ) (h : m ≤ n) (x : ℤ_[p]) : ↑(toZModPow n x) = toZModPow m x := by
+  rw [← zmod_cast_comp_to_zmod_pow _ _ h]; rfl
 #align padic_int.cast_to_zmod_pow PadicInt.cast_toZModPow
 
 /- warning: padic_int.dense_range_nat_cast -> PadicInt.denseRange_nat_cast is a dubious translation:
@@ -942,8 +916,7 @@ theorem ext_of_toZModPow {x y : ℤ_[p]} : (∀ n, toZModPow n x = toZModPow n y
   · intro h
     rw [← lift_self x, ← lift_self y]
     simp [lift, lim_nth_hom, nth_hom, h]
-  · rintro rfl _
-    rfl
+  · rintro rfl _; rfl
 #align padic_int.ext_of_to_zmod_pow PadicInt.ext_of_toZModPow
 
 /- warning: padic_int.to_zmod_pow_eq_iff_ext -> PadicInt.toZModPow_eq_iff_ext is a dubious translation:
@@ -962,8 +935,7 @@ theorem toZModPow_eq_iff_ext {R : Type _} [NonAssocSemiring R] {g g' : R →+* 
     intro n
     show (to_zmod_pow n).comp g x = (to_zmod_pow n).comp g' x
     rw [hg n]
-  · rintro rfl _
-    rfl
+  · rintro rfl _; rfl
 #align padic_int.to_zmod_pow_eq_iff_ext PadicInt.toZModPow_eq_iff_ext
 
 end PadicInt
Diff
@@ -63,6 +63,7 @@ variable (p) (r : ℚ)
 
 omit hp_prime
 
+#print PadicInt.modPart /-
 /-- `mod_part p r` is an integer that satisfies
 `‖(r - mod_part p r : ℚ_[p])‖ < 1` when `‖(r : ℚ_[p])‖ ≤ 1`,
 see `padic_int.norm_sub_mod_part`.
@@ -74,22 +75,33 @@ and works for arbitrary `x : ℤ_[p]`.) -/
 def modPart : ℤ :=
   r.num * gcdA r.den p % p
 #align padic_int.mod_part PadicInt.modPart
+-/
 
 include hp_prime
 
 variable {p}
 
+#print PadicInt.modPart_lt_p /-
 theorem modPart_lt_p : modPart p r < p :=
   by
   convert Int.emod_lt _ _
   · simp
   · exact_mod_cast hp_prime.1.NeZero
 #align padic_int.mod_part_lt_p PadicInt.modPart_lt_p
+-/
 
+#print PadicInt.modPart_nonneg /-
 theorem modPart_nonneg : 0 ≤ modPart p r :=
   Int.emod_nonneg _ <| by exact_mod_cast hp_prime.1.NeZero
 #align padic_int.mod_part_nonneg PadicInt.modPart_nonneg
+-/
 
+/- warning: padic_int.is_unit_denom -> PadicInt.isUnit_den is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat), (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (IsUnit.{0} (PadicInt p hp_prime) (Ring.toMonoid.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) (Rat.den r)))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat), (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (IsUnit.{0} (PadicInt p hp_prime) (MonoidWithZero.toMonoid.{0} (PadicInt p hp_prime) (Semiring.toMonoidWithZero.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Rat.den r)))
+Case conversion may be inaccurate. Consider using '#align padic_int.is_unit_denom PadicInt.isUnit_denₓ'. -/
 theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : ℤ_[p]) :=
   by
   rw [is_unit_iff]
@@ -116,6 +128,12 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
   rwa [← r.cop.gcd_eq_one, Nat.dvd_gcd_iff, ← Int.coe_nat_dvd_left, ← Int.coe_nat_dvd]
 #align padic_int.is_unit_denom PadicInt.isUnit_den
 
+/- warning: padic_int.norm_sub_mod_part_aux -> PadicInt.norm_sub_mod_part_aux is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat), (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Dvd.Dvd.{0} Int (semigroupDvd.{0} Int Int.semigroup) ((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))) p) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.hasSub) (Rat.num r) (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.hasMul) (HMod.hMod.{0, 0, 0} Int Int Int (instHMod.{0} Int Int.hasMod) (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.hasMul) (Rat.num r) (Nat.gcdA (Rat.den r) p)) ((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))) p)) ((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))) (Rat.den r)))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat), (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Dvd.dvd.{0} Int Int.instDvdInt (Nat.cast.{0} Int instNatCastInt p) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.instSubInt) (Rat.num r) (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.instMulInt) (HMod.hMod.{0, 0, 0} Int Int Int (instHMod.{0} Int Int.instModInt_1) (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.instMulInt) (Rat.num r) (Nat.gcdA (Rat.den r) p)) (Nat.cast.{0} Int instNatCastInt p)) (Nat.cast.{0} Int instNatCastInt (Rat.den r)))))
+Case conversion may be inaccurate. Consider using '#align padic_int.norm_sub_mod_part_aux PadicInt.norm_sub_mod_part_auxₓ'. -/
 theorem norm_sub_mod_part_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ↑p ∣ r.num - r.num * r.den.gcdA p % p * ↑r.den :=
   by
@@ -137,6 +155,12 @@ theorem norm_sub_mod_part_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
   exact is_unit_denom r h
 #align padic_int.norm_sub_mod_part_aux PadicInt.norm_sub_mod_part_aux
 
+/- warning: padic_int.norm_sub_mod_part -> PadicInt.norm_sub_modPart is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat) (h : LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))), LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.hasNorm p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) (Subtype.mk.{1} (Padic p hp_prime) (fun (x : Padic p hp_prime) => LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r) h) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Int (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Int (PadicInt p hp_prime) (Int.castCoe.{0} (PadicInt p hp_prime) (AddGroupWithOne.toHasIntCast.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))))) (PadicInt.modPart p r)))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat) (h : LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))), LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.instNormPadicInt p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) (Subtype.mk.{1} (Padic p hp_prime) (fun (x : Padic p hp_prime) => LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r) h) (Int.cast.{0} (PadicInt p hp_prime) (Ring.toIntCast.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))) (PadicInt.modPart p r)))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+Case conversion may be inaccurate. Consider using '#align padic_int.norm_sub_mod_part PadicInt.norm_sub_modPartₓ'. -/
 theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modPart p r : ℤ_[p])‖ < 1 :=
   by
   let n := mod_part p r
@@ -152,12 +176,21 @@ theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modP
   exact norm_sub_mod_part_aux r h
 #align padic_int.norm_sub_mod_part PadicInt.norm_sub_modPart
 
+/- warning: padic_int.exists_mem_range_of_norm_rat_le_one -> PadicInt.exists_mem_range_of_norm_rat_le_one is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat) (h : LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))), Exists.{1} Int (fun (n : Int) => And (LE.le.{0} Int Int.hasLe (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) n) (And (LT.lt.{0} Int Int.hasLt n ((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))) p)) (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.hasNorm p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) (Subtype.mk.{1} (Padic p hp_prime) (fun (x : Padic p hp_prime) => LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp_prime) (Padic.hasNorm p hp_prime) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp_prime) (HasLiftT.mk.{1, 1} Rat (Padic p hp_prime) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp_prime) (Rat.castCoe.{0} (Padic p hp_prime) (DivisionRing.toHasRatCast.{0} (Padic p hp_prime) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp_prime) (NormedField.toNormedDivisionRing.{0} (Padic p hp_prime) (Padic.normedField p hp_prime))))))) r) h) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Int (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Int (PadicInt p hp_prime) (Int.castCoe.{0} (PadicInt p hp_prime) (AddGroupWithOne.toHasIntCast.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))))) n))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (r : Rat) (h : LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))), Exists.{1} Int (fun (n : Int) => And (LE.le.{0} Int Int.instLEInt (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) n) (And (LT.lt.{0} Int Int.instLTInt n (Nat.cast.{0} Int instNatCastInt p)) (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.instNormPadicInt p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) (Subtype.mk.{1} (Padic p hp_prime) (fun (x : Padic p hp_prime) => LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp_prime) (Padic.instNormPadic p hp_prime) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (Rat.cast.{0} (Padic p hp_prime) (Field.toRatCast.{0} (Padic p hp_prime) (Padic.field p hp_prime)) r) h) (Int.cast.{0} (PadicInt p hp_prime) (Ring.toIntCast.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))) n))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))))
+Case conversion may be inaccurate. Consider using '#align padic_int.exists_mem_range_of_norm_rat_le_one PadicInt.exists_mem_range_of_norm_rat_le_oneₓ'. -/
 theorem exists_mem_range_of_norm_rat_le_one (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ∃ n : ℤ, 0 ≤ n ∧ n < p ∧ ‖(⟨r, h⟩ - n : ℤ_[p])‖ < 1 :=
   ⟨modPart p r, modPart_nonneg _, modPart_lt_p _, norm_sub_modPart _ h⟩
 #align padic_int.exists_mem_range_of_norm_rat_le_one PadicInt.exists_mem_range_of_norm_rat_le_one
 
-theorem zMod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
+/- warning: padic_int.zmod_congr_of_sub_mem_span_aux -> PadicInt.zmod_congr_of_sub_mem_span_aux is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align padic_int.zmod_congr_of_sub_mem_span_aux PadicInt.zmod_congr_of_sub_mem_span_auxₓ'. -/
+theorem zmod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
     (ha : x - a ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p]))
     (hb : x - b ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p])) : (a : ZMod (p ^ n)) = b :=
   by
@@ -167,15 +200,24 @@ theorem zMod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
   have := dvd_add ha hb
   rwa [sub_eq_add_neg, sub_eq_add_neg, add_assoc, neg_add_cancel_left, ← sub_eq_add_neg, ←
     Int.cast_sub, pow_p_dvd_int_iff] at this
-#align padic_int.zmod_congr_of_sub_mem_span_aux PadicInt.zMod_congr_of_sub_mem_span_aux
+#align padic_int.zmod_congr_of_sub_mem_span_aux PadicInt.zmod_congr_of_sub_mem_span_aux
 
-theorem zMod_congr_of_sub_mem_span (n : ℕ) (x : ℤ_[p]) (a b : ℕ)
+/- warning: padic_int.zmod_congr_of_sub_mem_span -> PadicInt.zmod_congr_of_sub_mem_span is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align padic_int.zmod_congr_of_sub_mem_span PadicInt.zmod_congr_of_sub_mem_spanₓ'. -/
+theorem zmod_congr_of_sub_mem_span (n : ℕ) (x : ℤ_[p]) (a b : ℕ)
     (ha : x - a ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p]))
     (hb : x - b ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p])) : (a : ZMod (p ^ n)) = b := by
   simpa using zmod_congr_of_sub_mem_span_aux n x a b ha hb
-#align padic_int.zmod_congr_of_sub_mem_span PadicInt.zMod_congr_of_sub_mem_span
-
-theorem zMod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m ∈ maximalIdeal ℤ_[p])
+#align padic_int.zmod_congr_of_sub_mem_span PadicInt.zmod_congr_of_sub_mem_span
+
+/- warning: padic_int.zmod_congr_of_sub_mem_max_ideal -> PadicInt.zmod_congr_of_sub_mem_max_ideal is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime) (m : Nat) (n : Nat), (Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) m)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))) -> (Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) n)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))) -> (Eq.{1} (ZMod p) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (ZMod p) (HasLiftT.mk.{1, 1} Nat (ZMod p) (CoeTCₓ.coe.{1, 1} Nat (ZMod p) (Nat.castCoe.{0} (ZMod p) (AddMonoidWithOne.toNatCast.{0} (ZMod p) (AddGroupWithOne.toAddMonoidWithOne.{0} (ZMod p) (AddCommGroupWithOne.toAddGroupWithOne.{0} (ZMod p) (Ring.toAddCommGroupWithOne.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))))))) m) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (ZMod p) (HasLiftT.mk.{1, 1} Nat (ZMod p) (CoeTCₓ.coe.{1, 1} Nat (ZMod p) (Nat.castCoe.{0} (ZMod p) (AddMonoidWithOne.toNatCast.{0} (ZMod p) (AddGroupWithOne.toAddMonoidWithOne.{0} (ZMod p) (AddCommGroupWithOne.toAddGroupWithOne.{0} (ZMod p) (Ring.toAddCommGroupWithOne.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))))))) n))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime) (m : Nat) (n : Nat), (Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) m)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))) -> (Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) n)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))) -> (Eq.{1} (ZMod p) (Nat.cast.{0} (ZMod p) (Semiring.toNatCast.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime))))) m) (Nat.cast.{0} (ZMod p) (Semiring.toNatCast.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime))))) n))
+Case conversion may be inaccurate. Consider using '#align padic_int.zmod_congr_of_sub_mem_max_ideal PadicInt.zmod_congr_of_sub_mem_max_idealₓ'. -/
+theorem zmod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m ∈ maximalIdeal ℤ_[p])
     (hn : x - n ∈ maximalIdeal ℤ_[p]) : (m : ZMod p) = n :=
   by
   rw [maximal_ideal_eq_span_p] at hm hn
@@ -185,10 +227,16 @@ theorem zMod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m 
   apply_fun ZMod.castHom (show p ∣ p ^ 1 by rw [pow_one]) (ZMod p)  at this
   simp only [map_intCast] at this
   simpa only [Int.cast_ofNat] using this
-#align padic_int.zmod_congr_of_sub_mem_max_ideal PadicInt.zMod_congr_of_sub_mem_max_ideal
+#align padic_int.zmod_congr_of_sub_mem_max_ideal PadicInt.zmod_congr_of_sub_mem_max_ideal
 
 variable (x : ℤ_[p])
 
+/- warning: padic_int.exists_mem_range -> PadicInt.exists_mem_range is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), Exists.{1} Nat (fun (n : Nat) => And (LT.lt.{0} Nat Nat.hasLt n p) (Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) n)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), Exists.{1} Nat (fun (n : Nat) => And (LT.lt.{0} Nat instLTNat n p) (Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) n)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))))
+Case conversion may be inaccurate. Consider using '#align padic_int.exists_mem_range PadicInt.exists_mem_rangeₓ'. -/
 theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p] :=
   by
   simp only [maximal_ideal_eq_span_p, Ideal.mem_span_singleton, ← norm_lt_one_iff_dvd]
@@ -212,28 +260,47 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
   simpa using hn
 #align padic_int.exists_mem_range PadicInt.exists_mem_range
 
+#print PadicInt.zmodRepr /-
 /-- `zmod_repr x` is the unique natural number smaller than `p`
 satisfying `‖(x - zmod_repr x : ℤ_[p])‖ < 1`.
 -/
 def zmodRepr : ℕ :=
   Classical.choose (exists_mem_range x)
 #align padic_int.zmod_repr PadicInt.zmodRepr
+-/
 
+/- warning: padic_int.zmod_repr_spec -> PadicInt.zmodRepr_spec is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), And (LT.lt.{0} Nat Nat.hasLt (PadicInt.zmodRepr p hp_prime x) p) (Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) (PadicInt.zmodRepr p hp_prime x))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime)))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), And (LT.lt.{0} Nat instLTNat (PadicInt.zmodRepr p hp_prime x) p) (Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt.zmodRepr p hp_prime x))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime)))
+Case conversion may be inaccurate. Consider using '#align padic_int.zmod_repr_spec PadicInt.zmodRepr_specₓ'. -/
 theorem zmodRepr_spec : zmodRepr x < p ∧ x - zmodRepr x ∈ maximalIdeal ℤ_[p] :=
   Classical.choose_spec (exists_mem_range x)
 #align padic_int.zmod_repr_spec PadicInt.zmodRepr_spec
 
+#print PadicInt.zmodRepr_lt_p /-
 theorem zmodRepr_lt_p : zmodRepr x < p :=
   (zmodRepr_spec _).1
 #align padic_int.zmod_repr_lt_p PadicInt.zmodRepr_lt_p
+-/
 
+/- warning: padic_int.sub_zmod_repr_mem -> PadicInt.sub_zmodRepr_mem is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) (PadicInt.zmodRepr p hp_prime x))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (x : PadicInt p hp_prime), Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt.zmodRepr p hp_prime x))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))
+Case conversion may be inaccurate. Consider using '#align padic_int.sub_zmod_repr_mem PadicInt.sub_zmodRepr_memₓ'. -/
 theorem sub_zmodRepr_mem : x - zmodRepr x ∈ maximalIdeal ℤ_[p] :=
   (zmodRepr_spec _).2
 #align padic_int.sub_zmod_repr_mem PadicInt.sub_zmodRepr_mem
 
+/- warning: padic_int.to_zmod_hom -> PadicInt.toZModHom is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod_hom PadicInt.toZModHomₓ'. -/
 /-- `to_zmod_hom` is an auxiliary constructor for creating ring homs from `ℤ_[p]` to `zmod v`.
 -/
-def toZmodHom (v : ℕ) (f : ℤ_[p] → ℕ) (f_spec : ∀ x, x - f x ∈ (Ideal.span {v} : Ideal ℤ_[p]))
+def toZModHom (v : ℕ) (f : ℤ_[p] → ℕ) (f_spec : ∀ x, x - f x ∈ (Ideal.span {v} : Ideal ℤ_[p]))
     (f_congr :
       ∀ (x : ℤ_[p]) (a b : ℕ),
         x - a ∈ (Ideal.span {v} : Ideal ℤ_[p]) →
@@ -263,21 +330,33 @@ def toZmodHom (v : ℕ) (f : ℤ_[p] → ℕ) (f_spec : ∀ x, x - f x ∈ (Idea
       convert I.add_mem (I.mul_mem_left x (f_spec y)) (I.mul_mem_right (f y) (f_spec x))
       rw [cast_mul]
       ring
-#align padic_int.to_zmod_hom PadicInt.toZmodHom
-
+#align padic_int.to_zmod_hom PadicInt.toZModHom
+
+/- warning: padic_int.to_zmod -> PadicInt.toZMod is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))
+Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod PadicInt.toZModₓ'. -/
 /-- `to_zmod` is a ring hom from `ℤ_[p]` to `zmod p`,
 with the equality `to_zmod x = (zmod_repr x : zmod p)`.
 -/
-def toZmod : ℤ_[p] →+* ZMod p :=
-  toZmodHom p zmodRepr
+def toZMod : ℤ_[p] →+* ZMod p :=
+  toZModHom p zmodRepr
     (by
       rw [← maximal_ideal_eq_span_p]
       exact sub_zmod_repr_mem)
     (by
       rw [← maximal_ideal_eq_span_p]
       exact zmod_congr_of_sub_mem_max_ideal)
-#align padic_int.to_zmod PadicInt.toZmod
-
+#align padic_int.to_zmod PadicInt.toZMod
+
+/- warning: padic_int.to_zmod_spec -> PadicInt.toZMod_spec is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (z : PadicInt p hp_prime), Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) z ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (ZMod p) (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} (ZMod p) (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} (ZMod p) (PadicInt p hp_prime) (ZMod.hasCoeT.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) p))) (coeFn.{1, 1} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))) (fun (_x : RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))) => (PadicInt p hp_prime) -> (ZMod p)) (RingHom.hasCoeToFun.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))) (PadicInt.toZMod p hp_prime) z))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (z : PadicInt p hp_prime), Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) z (ZMod.cast.{0} (PadicInt p hp_prime) (Ring.toAddGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))) p (FunLike.coe.{1, 1, 1} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (PadicInt p hp_prime) (fun (_x : PadicInt p hp_prime) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PadicInt p hp_prime) => ZMod p) _x) (MulHomClass.toFunLike.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (PadicInt p hp_prime) (ZMod p) (NonUnitalNonAssocSemiring.toMul.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (NonUnitalNonAssocSemiring.toMul.{0} (ZMod p) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (ZMod p) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime))))))) (NonUnitalRingHomClass.toMulHomClass.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (PadicInt p hp_prime) (ZMod p) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (ZMod p) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (RingHomClass.toNonUnitalRingHomClass.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime))))) (RingHom.instRingHomClassRingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime))))))))) (PadicInt.toZMod p hp_prime) z))) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))
+Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod_spec PadicInt.toZMod_specₓ'. -/
 /-- `z - (to_zmod z : ℤ_[p])` is contained in the maximal ideal of `ℤ_[p]`, for every `z : ℤ_[p]`.
 
 The coercion from `zmod p` to `ℤ_[p]` is `zmod.has_coe_t`,
@@ -287,7 +366,7 @@ to coerce to rings of arbitrary characteristic, instead of only rings of charact
 This coercion is only a ring homomorphism if it coerces into a ring whose characteristic divides
 `p`. While this is not the case here we can still make use of the coercion.
 -/
-theorem toZmod_spec (z : ℤ_[p]) : z - (toZmod z : ℤ_[p]) ∈ maximalIdeal ℤ_[p] :=
+theorem toZMod_spec (z : ℤ_[p]) : z - (toZMod z : ℤ_[p]) ∈ maximalIdeal ℤ_[p] :=
   by
   convert sub_zmod_repr_mem z using 2
   dsimp [to_zmod, to_zmod_hom]
@@ -296,9 +375,15 @@ theorem toZmod_spec (z : ℤ_[p]) : z - (toZmod z : ℤ_[p]) ∈ maximalIdeal 
   simp only [ZMod.val_nat_cast, add_zero, add_def, Nat.cast_inj, zero_add]
   apply mod_eq_of_lt
   simpa only [zero_add] using zmod_repr_lt_p z
-#align padic_int.to_zmod_spec PadicInt.toZmod_spec
-
-theorem ker_toZmod : (toZmod : ℤ_[p] →+* ZMod p).ker = maximalIdeal ℤ_[p] :=
+#align padic_int.to_zmod_spec PadicInt.toZMod_spec
+
+/- warning: padic_int.ker_to_zmod -> PadicInt.ker_toZMod is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], Eq.{1} (Ideal.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (RingHom.ker.{0, 0, 0} (PadicInt p hp_prime) (ZMod p) (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) (Ring.toSemiring.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))) (RingHom.ringHomClass.{0, 0} (PadicInt p hp_prime) (ZMod p) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod p) (Ring.toNonAssocRing.{0} (ZMod p) (DivisionRing.toRing.{0} (ZMod p) (Field.toDivisionRing.{0} (ZMod p) (ZMod.field p hp_prime)))))) (PadicInt.toZMod p hp_prime)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.commRing p hp_prime)) (PadicInt.localRing p hp_prime))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], Eq.{1} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (RingHom.ker.{0, 0, 0} (PadicInt p hp_prime) (ZMod p) (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))) (RingHom.instRingHomClassRingHom.{0, 0} (PadicInt p hp_prime) (ZMod p) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod p) (DivisionSemiring.toSemiring.{0} (ZMod p) (Semifield.toDivisionSemiring.{0} (ZMod p) (Field.toSemifield.{0} (ZMod p) (ZMod.instFieldZMod p hp_prime)))))) (PadicInt.toZMod p hp_prime)) (LocalRing.maximalIdeal.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)) (PadicInt.instLocalRingPadicIntToSemiringToCommSemiringInstCommRingPadicInt p hp_prime))
+Case conversion may be inaccurate. Consider using '#align padic_int.ker_to_zmod PadicInt.ker_toZModₓ'. -/
+theorem ker_toZMod : (toZMod : ℤ_[p] →+* ZMod p).ker = maximalIdeal ℤ_[p] :=
   by
   ext x
   rw [RingHom.mem_ker]
@@ -311,8 +396,9 @@ theorem ker_toZmod : (toZmod : ℤ_[p] →+* ZMod p).ker = maximalIdeal ℤ_[p]
     convert zmod_congr_of_sub_mem_max_ideal x _ 0 _ h
     norm_cast
     apply sub_zmod_repr_mem
-#align padic_int.ker_to_zmod PadicInt.ker_toZmod
+#align padic_int.ker_to_zmod PadicInt.ker_toZMod
 
+#print PadicInt.appr /-
 /-- `appr n x` gives a value `v : ℕ` such that `x` and `↑v : ℤ_p` are congruent mod `p^n`.
 See `appr_spec`. -/
 noncomputable irreducible_def appr : ℤ_[p] → ℕ → ℕ
@@ -322,9 +408,11 @@ noncomputable irreducible_def appr : ℤ_[p] → ℕ → ℕ
     if hy : y = 0 then appr x n
     else
       let u := unitCoeff hy
-      appr x n + p ^ n * (toZmod ((u : ℤ_[p]) * p ^ (y.Valuation - n).natAbs)).val
+      appr x n + p ^ n * (toZMod ((u : ℤ_[p]) * p ^ (y.Valuation - n).natAbs)).val
 #align padic_int.appr PadicInt.appr
+-/
 
+#print PadicInt.appr_lt /-
 theorem appr_lt (x : ℤ_[p]) (n : ℕ) : x.appr n < p ^ n :=
   by
   induction' n with n ih generalizing x
@@ -344,7 +432,9 @@ theorem appr_lt (x : ℤ_[p]) (n : ℕ) : x.appr n < p ^ n :=
     · rw [mul_tsub, mul_one, ← pow_succ']
       apply add_tsub_cancel_of_le (le_of_lt hp)
 #align padic_int.appr_lt PadicInt.appr_lt
+-/
 
+#print PadicInt.appr_mono /-
 theorem appr_mono (x : ℤ_[p]) : Monotone x.appr :=
   by
   apply monotone_nat_of_le_succ
@@ -353,7 +443,9 @@ theorem appr_mono (x : ℤ_[p]) : Monotone x.appr :=
   split_ifs; · rfl
   apply Nat.le_add_right
 #align padic_int.appr_mono PadicInt.appr_mono
+-/
 
+#print PadicInt.dvd_appr_sub_appr /-
 theorem dvd_appr_sub_appr (x : ℤ_[p]) (m n : ℕ) (h : m ≤ n) : p ^ m ∣ x.appr n - x.appr m :=
   by
   obtain ⟨k, rfl⟩ := Nat.exists_eq_add_of_le h; clear h
@@ -368,7 +460,14 @@ theorem dvd_appr_sub_appr (x : ℤ_[p]) (m n : ℕ) (h : m ≤ n) : p ^ m ∣ x.
   apply dvd_mul_of_dvd_left
   apply pow_dvd_pow _ (Nat.le_add_right m k)
 #align padic_int.dvd_appr_sub_appr PadicInt.dvd_appr_sub_appr
+-/
 
+/- warning: padic_int.appr_spec -> PadicInt.appr_spec is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat) (x : PadicInt p hp_prime), Membership.Mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (SetLike.hasMem.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) (PadicInt.appr p hp_prime x n))) (Ideal.span.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) (Singleton.singleton.{0, 0} (PadicInt p hp_prime) (Set.{0} (PadicInt p hp_prime)) (Set.hasSingleton.{0} (PadicInt p hp_prime)) (HPow.hPow.{0, 0, 0} (PadicInt p hp_prime) Nat (PadicInt p hp_prime) (instHPow.{0, 0} (PadicInt p hp_prime) Nat (Monoid.Pow.{0} (PadicInt p hp_prime) (Ring.toMonoid.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) p) n)))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat) (x : PadicInt p hp_prime), Membership.mem.{0, 0} (PadicInt p hp_prime) (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (SetLike.instMembership.{0, 0} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt p hp_prime) (Submodule.setLike.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (Semiring.toModule.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) x (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt.appr p hp_prime x n))) (Ideal.span.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (Singleton.singleton.{0, 0} (PadicInt p hp_prime) (Set.{0} (PadicInt p hp_prime)) (Set.instSingletonSet.{0} (PadicInt p hp_prime)) (HPow.hPow.{0, 0, 0} (PadicInt p hp_prime) Nat (PadicInt p hp_prime) (instHPow.{0, 0} (PadicInt p hp_prime) Nat (Monoid.Pow.{0} (PadicInt p hp_prime) (MonoidWithZero.toMonoid.{0} (PadicInt p hp_prime) (Semiring.toMonoidWithZero.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))))) (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) p) n)))
+Case conversion may be inaccurate. Consider using '#align padic_int.appr_spec PadicInt.appr_specₓ'. -/
 theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p]) :=
   by
   simp only [Ideal.mem_span_singleton]
@@ -413,9 +512,15 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
     exact (dvd_pow_self (p : ℤ_[p]) hc0.ne').mul_left _
 #align padic_int.appr_spec PadicInt.appr_spec
 
+/- warning: padic_int.to_zmod_pow -> PadicInt.toZModPow is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat), RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat), RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)))))
+Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod_pow PadicInt.toZModPowₓ'. -/
 /-- A ring hom from `ℤ_[p]` to `zmod (p^n)`, with underlying function `padic_int.appr n`. -/
-def toZmodPow (n : ℕ) : ℤ_[p] →+* ZMod (p ^ n) :=
-  toZmodHom (p ^ n) (fun x => appr x n)
+def toZModPow (n : ℕ) : ℤ_[p] →+* ZMod (p ^ n) :=
+  toZModHom (p ^ n) (fun x => appr x n)
     (by
       intros
       convert appr_spec n _ using 1
@@ -425,9 +530,15 @@ def toZmodPow (n : ℕ) : ℤ_[p] →+* ZMod (p ^ n) :=
       apply zmod_congr_of_sub_mem_span n x a b
       · simpa using ha
       · simpa using hb)
-#align padic_int.to_zmod_pow PadicInt.toZmodPow
-
-theorem ker_toZmodPow (n : ℕ) : (toZmodPow n : ℤ_[p] →+* ZMod (p ^ n)).ker = Ideal.span {p ^ n} :=
+#align padic_int.to_zmod_pow PadicInt.toZModPow
+
+/- warning: padic_int.ker_to_zmod_pow -> PadicInt.ker_toZModPow is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat), Eq.{1} (Ideal.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (RingHom.ker.{0, 0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)))))) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)))) (RingHom.ringHomClass.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)))))) (PadicInt.toZModPow p hp_prime n)) (Ideal.span.{0} (PadicInt p hp_prime) (Ring.toSemiring.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))) (Singleton.singleton.{0, 0} (PadicInt p hp_prime) (Set.{0} (PadicInt p hp_prime)) (Set.hasSingleton.{0} (PadicInt p hp_prime)) (HPow.hPow.{0, 0, 0} (PadicInt p hp_prime) Nat (PadicInt p hp_prime) (instHPow.{0, 0} (PadicInt p hp_prime) Nat (Monoid.Pow.{0} (PadicInt p hp_prime) (Ring.toMonoid.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Nat (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Nat (PadicInt p hp_prime) (Nat.castCoe.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))))) p) n)))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (n : Nat), Eq.{1} (Ideal.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (RingHom.ker.{0, 0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)))))) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)))) (RingHom.instRingHomClassRingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)))))) (PadicInt.toZModPow p hp_prime n)) (Ideal.span.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))) (Singleton.singleton.{0, 0} (PadicInt p hp_prime) (Set.{0} (PadicInt p hp_prime)) (Set.instSingletonSet.{0} (PadicInt p hp_prime)) (HPow.hPow.{0, 0, 0} (PadicInt p hp_prime) Nat (PadicInt p hp_prime) (instHPow.{0, 0} (PadicInt p hp_prime) Nat (Monoid.Pow.{0} (PadicInt p hp_prime) (MonoidWithZero.toMonoid.{0} (PadicInt p hp_prime) (Semiring.toMonoidWithZero.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))))) (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) p) n)))
+Case conversion may be inaccurate. Consider using '#align padic_int.ker_to_zmod_pow PadicInt.ker_toZModPowₓ'. -/
+theorem ker_toZModPow (n : ℕ) : (toZModPow n : ℤ_[p] →+* ZMod (p ^ n)).ker = Ideal.span {p ^ n} :=
   by
   ext x
   rw [RingHom.mem_ker]
@@ -444,11 +555,17 @@ theorem ker_toZmodPow (n : ℕ) : (toZmodPow n : ℤ_[p] →+* ZMod (p ^ n)).ker
     dsimp [to_zmod_pow, to_zmod_hom]
     rw [zmod_congr_of_sub_mem_span n x _ 0 _ h, cast_zero]
     apply appr_spec
-#align padic_int.ker_to_zmod_pow PadicInt.ker_toZmodPow
-
+#align padic_int.ker_to_zmod_pow PadicInt.ker_toZModPow
+
+/- warning: padic_int.zmod_cast_comp_to_zmod_pow -> PadicInt.zmod_cast_comp_toZModPow is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (m : Nat) (n : Nat) (h : LE.le.{0} Nat Nat.hasLe m n), Eq.{1} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)))))) (RingHom.comp.{0, 0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m) (pow_dvd_pow.{0} Nat Nat.monoid p m n h) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m))) (PadicInt.toZModPow p hp_prime n)) (PadicInt.toZModPow p hp_prime m)
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (m : Nat) (n : Nat) (h : LE.le.{0} Nat instLENat m n), Eq.{1} (RingHom.{0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)))))) (RingHom.comp.{0, 0, 0} (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p m) (pow_dvd_pow.{0} Nat Nat.monoid p m n h) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p m))) (PadicInt.toZModPow p hp_prime n)) (PadicInt.toZModPow p hp_prime m)
+Case conversion may be inaccurate. Consider using '#align padic_int.zmod_cast_comp_to_zmod_pow PadicInt.zmod_cast_comp_toZModPowₓ'. -/
 @[simp]
-theorem zMod_cast_comp_toZmodPow (m n : ℕ) (h : m ≤ n) :
-    (ZMod.castHom (pow_dvd_pow p h) (ZMod (p ^ m))).comp (toZmodPow n) = toZmodPow m :=
+theorem zmod_cast_comp_toZModPow (m n : ℕ) (h : m ≤ n) :
+    (ZMod.castHom (pow_dvd_pow p h) (ZMod (p ^ m))).comp (toZModPow n) = toZModPow m :=
   by
   apply ZMod.ringHom_eq_of_ker_eq
   ext x
@@ -464,15 +581,24 @@ theorem zMod_cast_comp_toZmodPow (m n : ℕ) (h : m ≤ n) :
     use c
     rw [← Nat.cast_sub (appr_mono _ h), hc, Nat.cast_mul, Nat.cast_pow]
   · infer_instance
-#align padic_int.zmod_cast_comp_to_zmod_pow PadicInt.zMod_cast_comp_toZmodPow
+#align padic_int.zmod_cast_comp_to_zmod_pow PadicInt.zmod_cast_comp_toZModPow
 
+/- warning: padic_int.cast_to_zmod_pow -> PadicInt.cast_toZModPow is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align padic_int.cast_to_zmod_pow PadicInt.cast_toZModPowₓ'. -/
 @[simp]
-theorem cast_toZmodPow (m n : ℕ) (h : m ≤ n) (x : ℤ_[p]) : ↑(toZmodPow n x) = toZmodPow m x :=
+theorem cast_toZModPow (m n : ℕ) (h : m ≤ n) (x : ℤ_[p]) : ↑(toZModPow n x) = toZModPow m x :=
   by
   rw [← zmod_cast_comp_to_zmod_pow _ _ h]
   rfl
-#align padic_int.cast_to_zmod_pow PadicInt.cast_toZmodPow
-
+#align padic_int.cast_to_zmod_pow PadicInt.cast_toZModPow
+
+/- warning: padic_int.dense_range_nat_cast -> PadicInt.denseRange_nat_cast is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], DenseRange.{0, 0} (PadicInt p hp_prime) (UniformSpace.toTopologicalSpace.{0} (PadicInt p hp_prime) (PseudoMetricSpace.toUniformSpace.{0} (PadicInt p hp_prime) (SeminormedRing.toPseudoMetricSpace.{0} (PadicInt p hp_prime) (SeminormedCommRing.toSemiNormedRing.{0} (PadicInt p hp_prime) (NormedCommRing.toSeminormedCommRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) Nat (Nat.cast.{0} (PadicInt p hp_prime) (AddMonoidWithOne.toNatCast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toAddMonoidWithOne.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], DenseRange.{0, 0} (PadicInt p hp_prime) (UniformSpace.toTopologicalSpace.{0} (PadicInt p hp_prime) (PseudoMetricSpace.toUniformSpace.{0} (PadicInt p hp_prime) (SeminormedRing.toPseudoMetricSpace.{0} (PadicInt p hp_prime) (SeminormedCommRing.toSeminormedRing.{0} (PadicInt p hp_prime) (NormedCommRing.toSeminormedCommRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))))) Nat (Nat.cast.{0} (PadicInt p hp_prime) (Semiring.toNatCast.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))
+Case conversion may be inaccurate. Consider using '#align padic_int.dense_range_nat_cast PadicInt.denseRange_nat_castₓ'. -/
 theorem denseRange_nat_cast : DenseRange (Nat.cast : ℕ → ℤ_[p]) :=
   by
   intro x
@@ -486,6 +612,12 @@ theorem denseRange_nat_cast : DenseRange (Nat.cast : ℕ → ℤ_[p]) :=
   apply appr_spec
 #align padic_int.dense_range_nat_cast PadicInt.denseRange_nat_cast
 
+/- warning: padic_int.dense_range_int_cast -> PadicInt.denseRange_int_cast is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], DenseRange.{0, 0} (PadicInt p hp_prime) (UniformSpace.toTopologicalSpace.{0} (PadicInt p hp_prime) (PseudoMetricSpace.toUniformSpace.{0} (PadicInt p hp_prime) (SeminormedRing.toPseudoMetricSpace.{0} (PadicInt p hp_prime) (SeminormedCommRing.toSemiNormedRing.{0} (PadicInt p hp_prime) (NormedCommRing.toSeminormedCommRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) Int (Int.cast.{0} (PadicInt p hp_prime) (AddGroupWithOne.toHasIntCast.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)], DenseRange.{0, 0} (PadicInt p hp_prime) (UniformSpace.toTopologicalSpace.{0} (PadicInt p hp_prime) (PseudoMetricSpace.toUniformSpace.{0} (PadicInt p hp_prime) (SeminormedRing.toPseudoMetricSpace.{0} (PadicInt p hp_prime) (SeminormedCommRing.toSeminormedRing.{0} (PadicInt p hp_prime) (NormedCommRing.toSeminormedCommRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))))) Int (Int.cast.{0} (PadicInt p hp_prime) (Ring.toIntCast.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))))
+Case conversion may be inaccurate. Consider using '#align padic_int.dense_range_int_cast PadicInt.denseRange_int_castₓ'. -/
 theorem denseRange_int_cast : DenseRange (Int.cast : ℤ → ℤ_[p]) :=
   by
   intro x
@@ -511,6 +643,7 @@ variable {R : Type _} [NonAssocSemiring R] (f : ∀ k : ℕ, R →+* ZMod (p ^ k
 
 omit hp_prime
 
+#print PadicInt.nthHom /-
 /-- Given a family of ring homs `f : Π n : ℕ, R →+* zmod (p ^ n)`,
 `nth_hom f r` is an integer-valued sequence
 whose `n`th value is the unique integer `k` such that `0 ≤ k < p ^ n`
@@ -518,7 +651,14 @@ and `f n r = (k : zmod (p ^ n))`.
 -/
 def nthHom (r : R) : ℕ → ℤ := fun n => (f n r : ZMod (p ^ n)).val
 #align padic_int.nth_hom PadicInt.nthHom
+-/
 
+/- warning: padic_int.nth_hom_zero -> PadicInt.nthHom_zero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] (f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))), Eq.{1} (Nat -> Int) (PadicInt.nthHom.{u1} p R _inst_1 f (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))))) (OfNat.ofNat.{0} (Nat -> Int) 0 (OfNat.mk.{0} (Nat -> Int) 0 (Zero.zero.{0} (Nat -> Int) (Pi.instZero.{0, 0} Nat (fun (ᾰ : Nat) => Int) (fun (i : Nat) => Int.hasZero)))))
+but is expected to have type
+  forall {p : Nat} {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] (f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))), Eq.{1} (Nat -> Int) (PadicInt.nthHom.{u1} p R _inst_1 f (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R _inst_1))))) (OfNat.ofNat.{0} (Nat -> Int) 0 (Zero.toOfNat0.{0} (Nat -> Int) (Pi.instZero.{0, 0} Nat (fun (a._@.Mathlib.NumberTheory.Padics.RingHoms._hyg.5670 : Nat) => Int) (fun (i : Nat) => CommMonoidWithZero.toZero.{0} Int (CancelCommMonoidWithZero.toCommMonoidWithZero.{0} Int (IsDomain.toCancelCommMonoidWithZero.{0} Int Int.instCommSemiringInt (LinearOrderedRing.isDomain.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))))
+Case conversion may be inaccurate. Consider using '#align padic_int.nth_hom_zero PadicInt.nthHom_zeroₓ'. -/
 @[simp]
 theorem nthHom_zero : nthHom f 0 = 0 := by simp [nth_hom] <;> rfl
 #align padic_int.nth_hom_zero PadicInt.nthHom_zero
@@ -529,6 +669,12 @@ include hp_prime
 
 include f_compat
 
+/- warning: padic_int.pow_dvd_nth_hom_sub -> PadicInt.pow_dvd_nthHom_sub is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) -> (forall (r : R) (i : Nat) (j : Nat), (LE.le.{0} Nat Nat.hasLe i j) -> (Dvd.Dvd.{0} Int (semigroupDvd.{0} Int Int.semigroup) (HPow.hPow.{0, 0, 0} Int Nat Int (instHPow.{0, 0} Int Nat (Monoid.Pow.{0} Int Int.monoid)) ((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))) p) i) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.hasSub) (PadicInt.nthHom.{u1} p R _inst_1 f r j) (PadicInt.nthHom.{u1} p R _inst_1 f r i))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) -> (forall (r : R) (i : Nat) (j : Nat), (LE.le.{0} Nat instLENat i j) -> (Dvd.dvd.{0} Int Int.instDvdInt (HPow.hPow.{0, 0, 0} Int Nat Int Int.instHPowIntNat (Nat.cast.{0} Int instNatCastInt p) i) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.instSubInt) (PadicInt.nthHom.{u1} p R _inst_1 f r j) (PadicInt.nthHom.{u1} p R _inst_1 f r i))))
+Case conversion may be inaccurate. Consider using '#align padic_int.pow_dvd_nth_hom_sub PadicInt.pow_dvd_nthHom_subₓ'. -/
 theorem pow_dvd_nthHom_sub (r : R) (i j : ℕ) (h : i ≤ j) : ↑p ^ i ∣ nthHom f r j - nthHom f r i :=
   by
   specialize f_compat i j h
@@ -538,6 +684,12 @@ theorem pow_dvd_nthHom_sub (r : R) (i j : ℕ) (h : i ≤ j) : ↑p ^ i ∣ nthH
   simp only [ZMod.cast_id, ZMod.castHom_apply, sub_self, ZMod.nat_cast_val, ZMod.int_cast_cast]
 #align padic_int.pow_dvd_nth_hom_sub PadicInt.pow_dvd_nthHom_sub
 
+/- warning: padic_int.is_cau_seq_nth_hom -> PadicInt.isCauSeq_nthHom is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) -> (forall (r : R), IsCauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (fun (n : Nat) => (fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Rat (HasLiftT.mk.{1, 1} Int Rat (CoeTCₓ.coe.{1, 1} Int Rat (Int.castCoe.{0} Rat Rat.hasIntCast))) (PadicInt.nthHom.{u1} p R _inst_1 f r n)))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) -> (forall (r : R), IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (fun (n : Nat) => Int.cast.{0} Rat Rat.instIntCastRat (PadicInt.nthHom.{u1} p R _inst_1 f r n)))
+Case conversion may be inaccurate. Consider using '#align padic_int.is_cau_seq_nth_hom PadicInt.isCauSeq_nthHomₓ'. -/
 theorem isCauSeq_nthHom (r : R) : IsCauSeq (padicNorm p) fun n => nthHom f r n :=
   by
   intro ε hε
@@ -550,6 +702,7 @@ theorem isCauSeq_nthHom (r : R) : IsCauSeq (padicNorm p) fun n => nthHom f r n :
   exact_mod_cast pow_dvd_nth_hom_sub f_compat r k j hj
 #align padic_int.is_cau_seq_nth_hom PadicInt.isCauSeq_nthHom
 
+#print PadicInt.nthHomSeq /-
 /-- `nth_hom_seq f_compat r` bundles `padic_int.nth_hom f r`
 as a Cauchy sequence of rationals with respect to the `p`-adic norm.
 The `n`th value of the sequence is `((f n r).val : ℚ)`.
@@ -557,7 +710,14 @@ The `n`th value of the sequence is `((f n r).val : ℚ)`.
 def nthHomSeq (r : R) : PadicSeq p :=
   ⟨fun n => nthHom f r n, isCauSeq_nthHom f_compat r⟩
 #align padic_int.nth_hom_seq PadicInt.nthHomSeq
+-/
 
+/- warning: padic_int.nth_hom_seq_one -> PadicInt.nthHomSeq_one is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)), HasEquivₓ.Equiv.{1} (PadicSeq p) (setoidHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_1))))))) (OfNat.ofNat.{0} (PadicSeq p) 1 (OfNat.mk.{0} (PadicSeq p) 1 (One.one.{0} (PadicSeq p) (CauSeq.hasOne.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime)))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)), HasEquiv.Equiv.{1, 0} (PadicSeq p) (instHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocSemiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{0} (PadicSeq p) 1 (One.toOfNat1.{0} (PadicSeq p) (CauSeq.instOneCauSeq.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))))
+Case conversion may be inaccurate. Consider using '#align padic_int.nth_hom_seq_one PadicInt.nthHomSeq_oneₓ'. -/
 -- this lemma ran into issues after changing to `ne_zero` and I'm not sure why.
 theorem nthHomSeq_one : nthHomSeq f_compat 1 ≈ 1 :=
   by
@@ -570,6 +730,12 @@ theorem nthHomSeq_one : nthHomSeq f_compat 1 ≈ 1 :=
   rw [ZMod.cast_eq_val, ZMod.val_one, Nat.cast_one]
 #align padic_int.nth_hom_seq_one PadicInt.nthHomSeq_one
 
+/- warning: padic_int.nth_hom_seq_add -> PadicInt.nthHomSeq_add is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) (r : R) (s : R), HasEquivₓ.Equiv.{1} (PadicSeq p) (setoidHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HAdd.hAdd.{0, 0, 0} (PadicSeq p) (PadicSeq p) (PadicSeq p) (instHAdd.{0} (PadicSeq p) (CauSeq.hasAdd.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) (r : R) (s : R), HasEquiv.Equiv.{1, 0} (PadicSeq p) (instHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HAdd.hAdd.{0, 0, 0} (PadicSeq p) (PadicSeq p) (PadicSeq p) (instHAdd.{0} (PadicSeq p) (CauSeq.instAddCauSeq.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
+Case conversion may be inaccurate. Consider using '#align padic_int.nth_hom_seq_add PadicInt.nthHomSeq_addₓ'. -/
 theorem nthHomSeq_add (r s : R) :
     nthHomSeq f_compat (r + s) ≈ nthHomSeq f_compat r + nthHomSeq f_compat s :=
   by
@@ -587,6 +753,12 @@ theorem nthHomSeq_add (r s : R) :
   · infer_instance
 #align padic_int.nth_hom_seq_add PadicInt.nthHomSeq_add
 
+/- warning: padic_int.nth_hom_seq_mul -> PadicInt.nthHomSeq_mul is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) (r : R) (s : R), HasEquivₓ.Equiv.{1} (PadicSeq p) (setoidHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HMul.hMul.{0, 0, 0} (PadicSeq p) (PadicSeq p) (PadicSeq p) (instHMul.{0} (PadicSeq p) (CauSeq.hasMul.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) (r : R) (s : R), HasEquiv.Equiv.{1, 0} (PadicSeq p) (instHasEquiv.{1} (PadicSeq p) (CauSeq.equiv.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))) r s)) (HMul.hMul.{0, 0, 0} (PadicSeq p) (PadicSeq p) (PadicSeq p) (instHMul.{0} (PadicSeq p) (CauSeq.instMulCauSeq.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp_prime))) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.nthHomSeq.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
+Case conversion may be inaccurate. Consider using '#align padic_int.nth_hom_seq_mul PadicInt.nthHomSeq_mulₓ'. -/
 theorem nthHomSeq_mul (r s : R) :
     nthHomSeq f_compat (r * s) ≈ nthHomSeq f_compat r * nthHomSeq f_compat s :=
   by
@@ -604,6 +776,7 @@ theorem nthHomSeq_mul (r s : R) :
   · infer_instance
 #align padic_int.nth_hom_seq_mul PadicInt.nthHomSeq_mul
 
+#print PadicInt.limNthHom /-
 /--
 `lim_nth_hom f_compat r` is the limit of a sequence `f` of compatible ring homs `R →+* zmod (p^k)`.
 This is itself a ring hom: see `padic_int.lift`.
@@ -611,7 +784,14 @@ This is itself a ring hom: see `padic_int.lift`.
 def limNthHom (r : R) : ℤ_[p] :=
   ofIntSeq (nthHom f r) (isCauSeq_nthHom f_compat r)
 #align padic_int.lim_nth_hom PadicInt.limNthHom
+-/
 
+/- warning: padic_int.lim_nth_hom_spec -> PadicInt.limNthHom_spec is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) (r : R) (ε : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (n : Nat), (GE.ge.{0} Nat Nat.hasLe n N) -> (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.hasNorm p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.hasSub p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (PadicInt p hp_prime) (HasLiftT.mk.{1, 1} Int (PadicInt p hp_prime) (CoeTCₓ.coe.{1, 1} Int (PadicInt p hp_prime) (Int.castCoe.{0} (PadicInt p hp_prime) (AddGroupWithOne.toHasIntCast.{0} (PadicInt p hp_prime) (AddCommGroupWithOne.toAddGroupWithOne.{0} (PadicInt p hp_prime) (Ring.toAddCommGroupWithOne.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))))) (PadicInt.nthHom.{u1} p R _inst_1 f r n)))) ε)))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) (r : R) (ε : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (n : Nat), (GE.ge.{0} Nat instLENat n N) -> (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (PadicInt p hp_prime) (PadicInt.instNormPadicInt p hp_prime) (HSub.hSub.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHSub.{0} (PadicInt p hp_prime) (PadicInt.instSubPadicInt p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (Int.cast.{0} (PadicInt p hp_prime) (Ring.toIntCast.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.instNormedCommRingPadicInt p hp_prime)))) (PadicInt.nthHom.{u1} p R _inst_1 f r n)))) ε)))
+Case conversion may be inaccurate. Consider using '#align padic_int.lim_nth_hom_spec PadicInt.limNthHom_specₓ'. -/
 theorem limNthHom_spec (r : R) :
     ∀ ε : ℝ, 0 < ε → ∃ N : ℕ, ∀ n ≥ N, ‖limNthHom f_compat r - nthHom f r n‖ < ε :=
   by
@@ -627,23 +807,53 @@ theorem limNthHom_spec (r : R) :
   exact hN _ hn
 #align padic_int.lim_nth_hom_spec PadicInt.limNthHom_spec
 
+/- warning: padic_int.lim_nth_hom_zero -> PadicInt.limNthHom_zero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))))) (OfNat.ofNat.{0} (PadicInt p hp_prime) 0 (OfNat.mk.{0} (PadicInt p hp_prime) 0 (Zero.zero.{0} (PadicInt p hp_prime) (PadicInt.hasZero p hp_prime))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroOneClass.toZero.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R _inst_1))))) (OfNat.ofNat.{0} (PadicInt p hp_prime) 0 (Zero.toOfNat0.{0} (PadicInt p hp_prime) (PadicInt.instZeroPadicInt p hp_prime)))
+Case conversion may be inaccurate. Consider using '#align padic_int.lim_nth_hom_zero PadicInt.limNthHom_zeroₓ'. -/
 theorem limNthHom_zero : limNthHom f_compat 0 = 0 := by simp [lim_nth_hom] <;> rfl
 #align padic_int.lim_nth_hom_zero PadicInt.limNthHom_zero
 
+/- warning: padic_int.lim_nth_hom_one -> PadicInt.limNthHom_one is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_1))))))) (OfNat.ofNat.{0} (PadicInt p hp_prime) 1 (OfNat.mk.{0} (PadicInt p hp_prime) 1 (One.one.{0} (PadicInt p hp_prime) (PadicInt.hasOne p hp_prime))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (NonAssocSemiring.toOne.{u1} R _inst_1)))) (OfNat.ofNat.{0} (PadicInt p hp_prime) 1 (One.toOfNat1.{0} (PadicInt p hp_prime) (PadicInt.instOnePadicInt p hp_prime)))
+Case conversion may be inaccurate. Consider using '#align padic_int.lim_nth_hom_one PadicInt.limNthHom_oneₓ'. -/
 theorem limNthHom_one : limNthHom f_compat 1 = 1 :=
   Subtype.ext <| Quot.sound <| nthHomSeq_one _
 #align padic_int.lim_nth_hom_one PadicInt.limNthHom_one
 
+/- warning: padic_int.lim_nth_hom_add -> PadicInt.limNthHom_add is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) (r : R) (s : R), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HAdd.hAdd.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHAdd.{0} (PadicInt p hp_prime) (PadicInt.hasAdd p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) (r : R) (s : R), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HAdd.hAdd.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHAdd.{0} (PadicInt p hp_prime) (PadicInt.instAddPadicInt p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
+Case conversion may be inaccurate. Consider using '#align padic_int.lim_nth_hom_add PadicInt.limNthHom_addₓ'. -/
 theorem limNthHom_add (r s : R) :
     limNthHom f_compat (r + s) = limNthHom f_compat r + limNthHom f_compat s :=
   Subtype.ext <| Quot.sound <| nthHomSeq_add _ _ _
 #align padic_int.lim_nth_hom_add PadicInt.limNthHom_add
 
+/- warning: padic_int.lim_nth_hom_mul -> PadicInt.limNthHom_mul is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (f k2)) (f k1)) (r : R) (s : R), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) r s)) (HMul.hMul.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHMul.{0} (PadicInt p hp_prime) (PadicInt.hasMul p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))} (f_compat : forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) (r : R) (s : R), Eq.{1} (PadicInt p hp_prime) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))) r s)) (HMul.hMul.{0, 0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (PadicInt p hp_prime) (instHMul.{0} (PadicInt p hp_prime) (PadicInt.instMulPadicInt p hp_prime)) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat r) (PadicInt.limNthHom.{u1} p hp_prime R _inst_1 (fun (k2 : Nat) => f k2) f_compat s))
+Case conversion may be inaccurate. Consider using '#align padic_int.lim_nth_hom_mul PadicInt.limNthHom_mulₓ'. -/
 theorem limNthHom_mul (r s : R) :
     limNthHom f_compat (r * s) = limNthHom f_compat r * limNthHom f_compat s :=
   Subtype.ext <| Quot.sound <| nthHomSeq_mul _ _ _
 #align padic_int.lim_nth_hom_mul PadicInt.limNthHom_mul
 
+/- warning: padic_int.lift -> PadicInt.lift is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat Nat.hasLe k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1))) (PadicInt.lift._proof_1 p k1)) (f k2)) (f k1)) -> (RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))))
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {f : forall (k : Nat), RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k)))))}, (forall (k1 : Nat) (k2 : Nat) (hk : LE.le.{0} Nat instLENat k1 k2), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)))))) (RingHom.comp.{u1, 0, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2))))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (Ring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))))) (ZMod.castHom.{0} (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k2) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p k1) (pow_dvd_pow.{0} Nat Nat.monoid p k1 k2 hk) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (ZMod.charP (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p k1))) (f k2)) (f k1)) -> (RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))
+Case conversion may be inaccurate. Consider using '#align padic_int.lift PadicInt.liftₓ'. -/
 -- TODO: generalize this to arbitrary complete discrete valuation rings
 /-- `lift f_compat` is the limit of a sequence `f` of compatible ring homs `R →+* zmod (p^k)`,
 with the equality `lift f_compat r = padic_int.lim_nth_hom f_compat r`.
@@ -658,6 +868,9 @@ def lift : R →+* ℤ_[p] where
 
 omit f_compat
 
+/- warning: padic_int.lift_sub_val_mem_span -> PadicInt.lift_sub_val_mem_span is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align padic_int.lift_sub_val_mem_span PadicInt.lift_sub_val_mem_spanₓ'. -/
 theorem lift_sub_val_mem_span (r : R) (n : ℕ) :
     lift f_compat r - (f n r).val ∈ (Ideal.span {↑p ^ n} : Ideal ℤ_[p]) :=
   by
@@ -674,21 +887,26 @@ theorem lift_sub_val_mem_span (r : R) (n : ℕ) :
     (Int.castRingHom ℤ_[p]).map_dvd (pow_dvd_nth_hom_sub f_compat r n (max n k) (le_max_left _ _))
 #align padic_int.lift_sub_val_mem_span PadicInt.lift_sub_val_mem_span
 
+#print PadicInt.lift_spec /-
 /-- One part of the universal property of `ℤ_[p]` as a projective limit.
 See also `padic_int.lift_unique`.
 -/
-theorem lift_spec (n : ℕ) : (toZmodPow n).comp (lift f_compat) = f n :=
+theorem lift_spec (n : ℕ) : (toZModPow n).comp (lift f_compat) = f n :=
   by
   ext r
   rw [RingHom.comp_apply, ← ZMod.nat_cast_zmod_val (f n r), ← map_natCast <| to_zmod_pow n, ←
     sub_eq_zero, ← RingHom.map_sub, ← RingHom.mem_ker, ker_to_zmod_pow]
   apply lift_sub_val_mem_span
 #align padic_int.lift_spec PadicInt.lift_spec
+-/
 
+/- warning: padic_int.lift_unique -> PadicInt.lift_unique is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align padic_int.lift_unique PadicInt.lift_uniqueₓ'. -/
 /-- One part of the universal property of `ℤ_[p]` as a projective limit.
 See also `padic_int.lift_spec`.
 -/
-theorem lift_unique (g : R →+* ℤ_[p]) (hg : ∀ n, (toZmodPow n).comp g = f n) : lift f_compat = g :=
+theorem lift_unique (g : R →+* ℤ_[p]) (hg : ∀ n, (toZModPow n).comp g = f n) : lift f_compat = g :=
   by
   ext1 r
   apply eq_of_forall_dist_le
@@ -699,8 +917,14 @@ theorem lift_unique (g : R →+* ℤ_[p]) (hg : ∀ n, (toZmodPow n).comp g = f
     RingHom.map_sub, ← RingHom.comp_apply, ← RingHom.comp_apply, lift_spec, hg, sub_self]
 #align padic_int.lift_unique PadicInt.lift_unique
 
+/- warning: padic_int.lift_self -> PadicInt.lift_self is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (z : PadicInt p hp_prime), Eq.{1} (PadicInt p hp_prime) (coeFn.{1, 1} (RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) (fun (_x : RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) => (PadicInt p hp_prime) -> (PadicInt p hp_prime)) (RingHom.hasCoeToFun.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) (PadicInt.lift.{0} p hp_prime (PadicInt p hp_prime) (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (PadicInt.toZModPow p hp_prime) (PadicInt.zmod_cast_comp_toZModPow p hp_prime)) z) z
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] (z : PadicInt p hp_prime), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PadicInt p hp_prime) => PadicInt p hp_prime) z) (FunLike.coe.{1, 1, 1} (RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (PadicInt p hp_prime) (fun (_x : PadicInt p hp_prime) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PadicInt p hp_prime) => PadicInt p hp_prime) _x) (MulHomClass.toFunLike.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (PadicInt p hp_prime) (PadicInt p hp_prime) (NonUnitalNonAssocSemiring.toMul.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (NonUnitalNonAssocSemiring.toMul.{0} (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))) (NonUnitalRingHomClass.toMulHomClass.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (PadicInt p hp_prime) (PadicInt p hp_prime) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (RingHomClass.toNonUnitalRingHomClass.{0, 0, 0} (RingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (RingHom.instRingHomClassRingHom.{0, 0} (PadicInt p hp_prime) (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))))))) (PadicInt.lift.{0} p hp_prime (PadicInt p hp_prime) (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (PadicInt.toZModPow p hp_prime) (PadicInt.zmod_cast_comp_toZModPow p hp_prime)) z) z
+Case conversion may be inaccurate. Consider using '#align padic_int.lift_self PadicInt.lift_selfₓ'. -/
 @[simp]
-theorem lift_self (z : ℤ_[p]) : @lift p _ ℤ_[p] _ toZmodPow zMod_cast_comp_toZmodPow z = z :=
+theorem lift_self (z : ℤ_[p]) : @lift p _ ℤ_[p] _ toZModPow zmod_cast_comp_toZModPow z = z :=
   by
   show _ = RingHom.id _ z
   rw [@lift_unique p _ ℤ_[p] _ _ zmod_cast_comp_to_zmod_pow (RingHom.id ℤ_[p])]
@@ -709,7 +933,10 @@ theorem lift_self (z : ℤ_[p]) : @lift p _ ℤ_[p] _ toZmodPow zMod_cast_comp_t
 
 end lift
 
-theorem ext_of_toZmodPow {x y : ℤ_[p]} : (∀ n, toZmodPow n x = toZmodPow n y) ↔ x = y :=
+/- warning: padic_int.ext_of_to_zmod_pow -> PadicInt.ext_of_toZModPow is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align padic_int.ext_of_to_zmod_pow PadicInt.ext_of_toZModPowₓ'. -/
+theorem ext_of_toZModPow {x y : ℤ_[p]} : (∀ n, toZModPow n x = toZModPow n y) ↔ x = y :=
   by
   constructor
   · intro h
@@ -717,10 +944,16 @@ theorem ext_of_toZmodPow {x y : ℤ_[p]} : (∀ n, toZmodPow n x = toZmodPow n y
     simp [lift, lim_nth_hom, nth_hom, h]
   · rintro rfl _
     rfl
-#align padic_int.ext_of_to_zmod_pow PadicInt.ext_of_toZmodPow
-
-theorem toZmodPow_eq_iff_ext {R : Type _} [NonAssocSemiring R] {g g' : R →+* ℤ_[p]} :
-    (∀ n, (toZmodPow n).comp g = (toZmodPow n).comp g') ↔ g = g' :=
+#align padic_int.ext_of_to_zmod_pow PadicInt.ext_of_toZModPow
+
+/- warning: padic_int.to_zmod_pow_eq_iff_ext -> PadicInt.toZModPow_eq_iff_ext is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {g : RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))} {g' : RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))}, Iff (forall (n : Nat), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)))))) (RingHom.comp.{u1, 0, 0} R (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n))))) (PadicInt.toZModPow p hp_prime n) g) (RingHom.comp.{u1, 0, 0} R (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime))))) (NonAssocRing.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (Ring.toNonAssocRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (CommRing.toRing.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n))))) (PadicInt.toZModPow p hp_prime n) g')) (Eq.{succ u1} (RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (NonAssocRing.toNonAssocSemiring.{0} (PadicInt p hp_prime) (Ring.toNonAssocRing.{0} (PadicInt p hp_prime) (NormedRing.toRing.{0} (PadicInt p hp_prime) (NormedCommRing.toNormedRing.{0} (PadicInt p hp_prime) (PadicInt.normedCommRing p hp_prime)))))) g g')
+but is expected to have type
+  forall {p : Nat} [hp_prime : Fact (Nat.Prime p)] {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] {g : RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))} {g' : RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))}, Iff (forall (n : Nat), Eq.{succ u1} (RingHom.{u1, 0} R (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) _inst_1 (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)))))) (RingHom.comp.{u1, 0, 0} R (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n))))) (PadicInt.toZModPow p hp_prime n) g) (RingHom.comp.{u1, 0, 0} R (PadicInt p hp_prime) (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime)))) (Semiring.toNonAssocSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommSemiring.toSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (CommRing.toCommSemiring.{0} (ZMod (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) (ZMod.commRing (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n))))) (PadicInt.toZModPow p hp_prime n) g')) (Eq.{succ u1} (RingHom.{u1, 0} R (PadicInt p hp_prime) _inst_1 (Semiring.toNonAssocSemiring.{0} (PadicInt p hp_prime) (CommSemiring.toSemiring.{0} (PadicInt p hp_prime) (CommRing.toCommSemiring.{0} (PadicInt p hp_prime) (PadicInt.instCommRingPadicInt p hp_prime))))) g g')
+Case conversion may be inaccurate. Consider using '#align padic_int.to_zmod_pow_eq_iff_ext PadicInt.toZModPow_eq_iff_extₓ'. -/
+theorem toZModPow_eq_iff_ext {R : Type _} [NonAssocSemiring R] {g g' : R →+* ℤ_[p]} :
+    (∀ n, (toZModPow n).comp g = (toZModPow n).comp g') ↔ g = g' :=
   by
   constructor
   · intro hg
@@ -731,7 +964,7 @@ theorem toZmodPow_eq_iff_ext {R : Type _} [NonAssocSemiring R] {g g' : R →+* 
     rw [hg n]
   · rintro rfl _
     rfl
-#align padic_int.to_zmod_pow_eq_iff_ext PadicInt.toZmodPow_eq_iff_ext
+#align padic_int.to_zmod_pow_eq_iff_ext PadicInt.toZModPow_eq_iff_ext
 
 end PadicInt
 
Diff
@@ -119,7 +119,7 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
 theorem norm_sub_mod_part_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ↑p ∣ r.num - r.num * r.den.gcdA p % p * ↑r.den :=
   by
-  rw [← ZMod.int_coe_zMod_eq_zero_iff_dvd]
+  rw [← ZMod.int_cast_zmod_eq_zero_iff_dvd]
   simp only [Int.cast_ofNat, ZMod.nat_cast_mod, Int.cast_mul, Int.cast_sub]
   have := congr_arg (coe : ℤ → ZMod p) (gcd_eq_gcd_ab r.denom p)
   simp only [Int.cast_ofNat, add_zero, Int.cast_add, ZMod.nat_cast_self, Int.cast_mul,
@@ -162,7 +162,7 @@ theorem zMod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
     (hb : x - b ∈ (Ideal.span {p ^ n} : Ideal ℤ_[p])) : (a : ZMod (p ^ n)) = b :=
   by
   rw [Ideal.mem_span_singleton] at ha hb
-  rw [← sub_eq_zero, ← Int.cast_sub, ZMod.int_coe_zMod_eq_zero_iff_dvd, Int.coe_nat_pow]
+  rw [← sub_eq_zero, ← Int.cast_sub, ZMod.int_cast_zmod_eq_zero_iff_dvd, Int.coe_nat_pow]
   rw [← dvd_neg, neg_sub] at ha
   have := dvd_add ha hb
   rwa [sub_eq_add_neg, sub_eq_add_neg, add_assoc, neg_add_cancel_left, ← sub_eq_add_neg, ←
@@ -437,7 +437,7 @@ theorem ker_toZmodPow (n : ℕ) : (toZmodPow n : ℤ_[p] →+* ZMod (p ^ n)).ker
       convert appr_spec n x
       simp only [this, sub_zero, cast_zero]
     dsimp [to_zmod_pow, to_zmod_hom] at h
-    rw [ZMod.nat_coe_zMod_eq_zero_iff_dvd] at h
+    rw [ZMod.nat_cast_zmod_eq_zero_iff_dvd] at h
     apply eq_zero_of_dvd_of_lt h (appr_lt _ _)
   · intro h
     rw [← sub_zero x] at h
@@ -532,7 +532,7 @@ include f_compat
 theorem pow_dvd_nthHom_sub (r : R) (i j : ℕ) (h : i ≤ j) : ↑p ^ i ∣ nthHom f r j - nthHom f r i :=
   by
   specialize f_compat i j h
-  rw [← Int.coe_nat_pow, ← ZMod.int_coe_zMod_eq_zero_iff_dvd, Int.cast_sub]
+  rw [← Int.coe_nat_pow, ← ZMod.int_cast_zmod_eq_zero_iff_dvd, Int.cast_sub]
   dsimp [nth_hom]
   rw [← f_compat, RingHom.comp_apply]
   simp only [ZMod.cast_id, ZMod.castHom_apply, sub_self, ZMod.nat_cast_val, ZMod.int_cast_cast]
@@ -580,7 +580,7 @@ theorem nthHomSeq_add (r s : R) :
   dsimp [nth_hom_seq]
   apply lt_of_le_of_lt _ hn
   rw [← Int.cast_add, ← Int.cast_sub, ← padicNorm.dvd_iff_norm_le, ←
-    ZMod.int_coe_zMod_eq_zero_iff_dvd]
+    ZMod.int_cast_zmod_eq_zero_iff_dvd]
   dsimp [nth_hom]
   simp only [ZMod.nat_cast_val, RingHom.map_add, Int.cast_sub, ZMod.int_cast_cast, Int.cast_add]
   rw [ZMod.cast_add (show p ^ n ∣ p ^ j from pow_dvd_pow _ hj), sub_self]
@@ -597,7 +597,7 @@ theorem nthHomSeq_mul (r s : R) :
   dsimp [nth_hom_seq]
   apply lt_of_le_of_lt _ hn
   rw [← Int.cast_mul, ← Int.cast_sub, ← padicNorm.dvd_iff_norm_le, ←
-    ZMod.int_coe_zMod_eq_zero_iff_dvd]
+    ZMod.int_cast_zmod_eq_zero_iff_dvd]
   dsimp [nth_hom]
   simp only [ZMod.nat_cast_val, RingHom.map_mul, Int.cast_sub, ZMod.int_cast_cast, Int.cast_mul]
   rw [ZMod.cast_mul (show p ^ n ∣ p ^ j from pow_dvd_pow _ hj), sub_self]
@@ -680,7 +680,7 @@ See also `padic_int.lift_unique`.
 theorem lift_spec (n : ℕ) : (toZmodPow n).comp (lift f_compat) = f n :=
   by
   ext r
-  rw [RingHom.comp_apply, ← ZMod.nat_cast_zMod_val (f n r), ← map_natCast <| to_zmod_pow n, ←
+  rw [RingHom.comp_apply, ← ZMod.nat_cast_zmod_val (f n r), ← map_natCast <| to_zmod_pow n, ←
     sub_eq_zero, ← RingHom.map_sub, ← RingHom.mem_ker, ker_to_zmod_pow]
   apply lift_sub_val_mem_span
 #align padic_int.lift_spec PadicInt.lift_spec
Diff
@@ -143,7 +143,7 @@ theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modP
   rw [norm_lt_one_iff_dvd, ← (is_unit_denom r h).dvd_mul_right]
   suffices ↑p ∣ r.num - n * r.denom
     by
-    convert (Int.castRingHom ℤ_[p]).map_dvd this
+    convert(Int.castRingHom ℤ_[p]).map_dvd this
     simp only [sub_mul, Int.cast_ofNat, eq_intCast, Int.cast_mul, sub_left_inj, Int.cast_sub]
     apply Subtype.coe_injective
     simp only [coe_mul, Subtype.coe_mk, coe_nat_cast]
Diff
@@ -122,8 +122,8 @@ theorem norm_sub_mod_part_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
   rw [← ZMod.int_coe_zMod_eq_zero_iff_dvd]
   simp only [Int.cast_ofNat, ZMod.nat_cast_mod, Int.cast_mul, Int.cast_sub]
   have := congr_arg (coe : ℤ → ZMod p) (gcd_eq_gcd_ab r.denom p)
-  simp only [Int.cast_ofNat, add_zero, Int.cast_add, ZMod.nat_cast_self, Int.cast_mul, zero_mul] at
-    this
+  simp only [Int.cast_ofNat, add_zero, Int.cast_add, ZMod.nat_cast_self, Int.cast_mul,
+    MulZeroClass.zero_mul] at this
   push_cast
   rw [mul_right_comm, mul_assoc, ← this]
   suffices rdcp : r.denom.coprime p
@@ -385,7 +385,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
   simp only [map_natCast, ZMod.nat_cast_self, RingHom.map_pow, RingHom.map_mul, ZMod.nat_cast_val]
   have hc' : c ≠ 0 := by
     rintro rfl
-    simp only [mul_zero] at hc
+    simp only [MulZeroClass.mul_zero] at hc
     contradiction
   conv_rhs =>
     congr
@@ -408,7 +408,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ (Ideal.span {p ^
     rw [DiscreteValuationRing.unit_mul_pow_congr_unit _ _ _ _ _ hc]
     exact irreducible_p
   · rw [zero_pow hc0]
-    simp only [sub_zero, ZMod.cast_zero, mul_zero]
+    simp only [sub_zero, ZMod.cast_zero, MulZeroClass.mul_zero]
     rw [unit_coeff_spec hc']
     exact (dvd_pow_self (p : ℤ_[p]) hc0.ne').mul_left _
 #align padic_int.appr_spec PadicInt.appr_spec
Diff
@@ -104,7 +104,7 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
   have key : ‖(r.num : ℚ_[p])‖ < 1 := by
     calc
       _ = _ := hr.symm
-      _ < 1 * 1 := mul_lt_mul' h norm_denom_lt (norm_nonneg _) zero_lt_one
+      _ < 1 * 1 := (mul_lt_mul' h norm_denom_lt (norm_nonneg _) zero_lt_one)
       _ = 1 := mul_one 1
       
   have : ↑p ∣ r.num ∧ (p : ℤ) ∣ r.denom :=
@@ -197,7 +197,7 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
     rw [norm_sub_rev] at hr
     calc
       _ = ‖(r : ℚ_[p]) - x + x‖ := by ring_nf
-      _ ≤ _ := padicNormE.nonarchimedean _ _
+      _ ≤ _ := (padicNormE.nonarchimedean _ _)
       _ ≤ _ := max_le (le_of_lt hr) x.2
       
   obtain ⟨n, hzn, hnp, hn⟩ := exists_mem_range_of_norm_rat_le_one r H

Changes in mathlib4

mathlib3
mathlib4
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
@@ -82,7 +82,7 @@ theorem modPart_nonneg : 0 ≤ modPart p r :=
 theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : ℤ_[p]) := by
   rw [isUnit_iff]
   apply le_antisymm (r.den : ℤ_[p]).2
-  rw [← not_lt, coe_nat_cast]
+  rw [← not_lt, coe_natCast]
   intro norm_denom_lt
   have hr : ‖(r * r.den : ℚ_[p])‖ = ‖(r.num : ℚ_[p])‖ := by
     congr
@@ -103,8 +103,8 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
 
 theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ↑p ∣ r.num - r.num * r.den.gcdA p % p * ↑r.den := by
-  rw [← ZMod.int_cast_zmod_eq_zero_iff_dvd]
-  simp only [Int.cast_natCast, ZMod.nat_cast_mod, Int.cast_mul, Int.cast_sub]
+  rw [← ZMod.intCast_zmod_eq_zero_iff_dvd]
+  simp only [Int.cast_natCast, ZMod.natCast_mod, Int.cast_mul, Int.cast_sub]
   have := congr_arg (fun x => x % p : ℤ → ZMod p) (gcd_eq_gcd_ab r.den p)
   simp only [Int.cast_natCast, CharP.cast_eq_zero, EuclideanDomain.mod_zero, Int.cast_add,
     Int.cast_mul, zero_mul, add_zero] at this
@@ -128,7 +128,7 @@ theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modP
     convert (Int.castRingHom ℤ_[p]).map_dvd this
     simp only [sub_mul, Int.cast_natCast, eq_intCast, Int.cast_mul, sub_left_inj, Int.cast_sub]
     apply Subtype.coe_injective
-    simp only [coe_mul, Subtype.coe_mk, coe_nat_cast]
+    simp only [coe_mul, Subtype.coe_mk, coe_natCast]
     rw_mod_cast [@Rat.mul_den_eq_num r]
     rfl
   exact norm_sub_modPart_aux r h
@@ -143,7 +143,7 @@ theorem zmod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
     (ha : x - a ∈ (Ideal.span {(p : ℤ_[p]) ^ n}))
     (hb : x - b ∈ (Ideal.span {(p : ℤ_[p]) ^ n})) : (a : ZMod (p ^ n)) = b := by
   rw [Ideal.mem_span_singleton] at ha hb
-  rw [← sub_eq_zero, ← Int.cast_sub, ZMod.int_cast_zmod_eq_zero_iff_dvd, Int.coe_nat_pow]
+  rw [← sub_eq_zero, ← Int.cast_sub, ZMod.intCast_zmod_eq_zero_iff_dvd, Int.coe_nat_pow]
   rw [← dvd_neg, neg_sub] at ha
   have := dvd_add ha hb
   rwa [sub_eq_add_neg, sub_eq_add_neg, add_assoc, neg_add_cancel_left, ← sub_eq_add_neg, ←
@@ -184,7 +184,7 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
   use n
   constructor
   · exact mod_cast hnp
-  simp only [norm_def, coe_sub, Subtype.coe_mk, coe_nat_cast] at hn ⊢
+  simp only [norm_def, coe_sub, Subtype.coe_mk, coe_natCast] at hn ⊢
   rw [show (x - n : ℚ_[p]) = x - r + (r - n) by ring]
   apply lt_of_le_of_lt (padicNormE.nonarchimedean _ _)
   apply max_lt hr
@@ -275,7 +275,7 @@ theorem toZMod_spec : x - (ZMod.cast (toZMod x) : ℤ_[p]) ∈ maximalIdeal ℤ_
   dsimp [toZMod, toZModHom]
   rcases Nat.exists_eq_add_of_lt hp_prime.1.pos with ⟨p', rfl⟩
   change ↑((_ : ZMod (0 + p' + 1)).val) = (_ : ℤ_[0 + p' + 1])
-  simp only [ZMod.val_nat_cast, add_zero, add_def, Nat.cast_inj, zero_add]
+  simp only [ZMod.val_natCast, add_zero, add_def, Nat.cast_inj, zero_add]
   apply mod_eq_of_lt
   simpa only [zero_add] using zmodRepr_lt_p x
 #align padic_int.to_zmod_spec PadicInt.toZMod_spec
@@ -310,7 +310,7 @@ noncomputable def appr : ℤ_[p] → ℕ → ℕ
 theorem appr_lt (x : ℤ_[p]) (n : ℕ) : x.appr n < p ^ n := by
   induction' n with n ih generalizing x
   · simp only [appr, zero_eq, _root_.pow_zero, zero_lt_one]
-  simp only [appr, map_natCast, ZMod.nat_cast_self, RingHom.map_pow, Int.natAbs, RingHom.map_mul]
+  simp only [appr, map_natCast, ZMod.natCast_self, RingHom.map_pow, Int.natAbs, RingHom.map_mul]
   have hp : p ^ n < p ^ (n + 1) := by apply pow_lt_pow_right hp_prime.1.one_lt (lt_add_one n)
   split_ifs with h
   · apply lt_trans (ih _) hp
@@ -360,7 +360,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ Ideal.span {(p :
   push_cast
   rw [sub_add_eq_sub_sub]
   obtain ⟨c, hc⟩ := ih x
-  simp only [map_natCast, ZMod.nat_cast_self, RingHom.map_pow, RingHom.map_mul, ZMod.nat_cast_val]
+  simp only [map_natCast, ZMod.natCast_self, RingHom.map_pow, RingHom.map_mul, ZMod.natCast_val]
   have hc' : c ≠ 0 := by
     rintro rfl
     simp only [mul_zero] at hc
@@ -412,7 +412,7 @@ theorem ker_toZModPow (n : ℕ) :
       convert appr_spec n x
       simp only [this, sub_zero, cast_zero]
     dsimp [toZModPow, toZModHom] at h
-    rw [ZMod.nat_cast_zmod_eq_zero_iff_dvd] at h
+    rw [ZMod.natCast_zmod_eq_zero_iff_dvd] at h
     apply eq_zero_of_dvd_of_lt h (appr_lt _ _)
   · intro h
     rw [← sub_zero x] at h
@@ -430,7 +430,7 @@ theorem zmod_cast_comp_toZModPow (m n : ℕ) (h : m ≤ n) :
   simp only [Function.comp_apply, ZMod.castHom_apply, RingHom.coe_comp]
   simp only [toZModPow, toZModHom, RingHom.coe_mk]
   dsimp
-  rw [ZMod.cast_nat_cast (pow_dvd_pow p h),
+  rw [ZMod.cast_natCast (pow_dvd_pow p h),
     zmod_congr_of_sub_mem_span m (x.appr n) (x.appr n) (x.appr m)]
   · rw [sub_self]
     apply Ideal.zero_mem _
@@ -447,7 +447,7 @@ theorem cast_toZModPow (m n : ℕ) (h : m ≤ n) (x : ℤ_[p]) :
   rfl
 #align padic_int.cast_to_zmod_pow PadicInt.cast_toZModPow
 
-theorem denseRange_nat_cast : DenseRange (Nat.cast : ℕ → ℤ_[p]) := by
+theorem denseRange_natCast : DenseRange (Nat.cast : ℕ → ℤ_[p]) := by
   intro x
   rw [Metric.mem_closure_range_iff]
   intro ε hε
@@ -457,16 +457,16 @@ theorem denseRange_nat_cast : DenseRange (Nat.cast : ℕ → ℤ_[p]) := by
   apply lt_of_le_of_lt _ hn
   rw [norm_le_pow_iff_mem_span_pow]
   apply appr_spec
-#align padic_int.dense_range_nat_cast PadicInt.denseRange_nat_cast
+#align padic_int.dense_range_nat_cast PadicInt.denseRange_natCast
 
-theorem denseRange_int_cast : DenseRange (Int.cast : ℤ → ℤ_[p]) := by
+theorem denseRange_intCast : DenseRange (Int.cast : ℤ → ℤ_[p]) := by
   intro x
-  refine DenseRange.induction_on denseRange_nat_cast x ?_ ?_
+  refine DenseRange.induction_on denseRange_natCast x ?_ ?_
   · exact isClosed_closure
   · intro a
     apply subset_closure
     exact Set.mem_range_self _
-#align padic_int.dense_range_int_cast PadicInt.denseRange_int_cast
+#align padic_int.dense_range_int_cast PadicInt.denseRange_intCast
 
 end RingHoms
 
@@ -499,10 +499,10 @@ variable {f}
 theorem pow_dvd_nthHom_sub (r : R) (i j : ℕ) (h : i ≤ j) :
     (p : ℤ) ^ i ∣ nthHom f r j - nthHom f r i := by
   specialize f_compat i j h
-  rw [← Int.coe_nat_pow, ← ZMod.int_cast_zmod_eq_zero_iff_dvd, Int.cast_sub]
+  rw [← Int.coe_nat_pow, ← ZMod.intCast_zmod_eq_zero_iff_dvd, Int.cast_sub]
   dsimp [nthHom]
   rw [← f_compat, RingHom.comp_apply]
-  simp only [ZMod.cast_id, ZMod.castHom_apply, sub_self, ZMod.nat_cast_val, ZMod.int_cast_cast]
+  simp only [ZMod.cast_id, ZMod.castHom_apply, sub_self, ZMod.natCast_val, ZMod.intCast_cast]
 #align padic_int.pow_dvd_nth_hom_sub PadicInt.pow_dvd_nthHom_sub
 
 theorem isCauSeq_nthHom (r : R) : IsCauSeq (padicNorm p) fun n => nthHom f r n := by
@@ -547,11 +547,11 @@ theorem nthHomSeq_add (r s : R) :
   dsimp [nthHomSeq]
   apply lt_of_le_of_lt _ hn
   rw [← Int.cast_add, ← Int.cast_sub, ← padicNorm.dvd_iff_norm_le, ←
-    ZMod.int_cast_zmod_eq_zero_iff_dvd]
+    ZMod.intCast_zmod_eq_zero_iff_dvd]
   dsimp [nthHom]
-  simp only [ZMod.nat_cast_val, RingHom.map_add, Int.cast_sub, ZMod.int_cast_cast, Int.cast_add]
+  simp only [ZMod.natCast_val, RingHom.map_add, Int.cast_sub, ZMod.intCast_cast, Int.cast_add]
   rw [ZMod.cast_add (show p ^ n ∣ p ^ j from pow_dvd_pow _ hj)]
-  simp only [cast_add, ZMod.nat_cast_val, Int.cast_add, ZMod.int_cast_cast, sub_self]
+  simp only [cast_add, ZMod.natCast_val, Int.cast_add, ZMod.intCast_cast, sub_self]
 #align padic_int.nth_hom_seq_add PadicInt.nthHomSeq_add
 
 theorem nthHomSeq_mul (r s : R) :
@@ -563,9 +563,9 @@ theorem nthHomSeq_mul (r s : R) :
   dsimp [nthHomSeq]
   apply lt_of_le_of_lt _ hn
   rw [← Int.cast_mul, ← Int.cast_sub, ← padicNorm.dvd_iff_norm_le, ←
-    ZMod.int_cast_zmod_eq_zero_iff_dvd]
+    ZMod.intCast_zmod_eq_zero_iff_dvd]
   dsimp [nthHom]
-  simp only [ZMod.nat_cast_val, RingHom.map_mul, Int.cast_sub, ZMod.int_cast_cast, Int.cast_mul]
+  simp only [ZMod.natCast_val, RingHom.map_mul, Int.cast_sub, ZMod.intCast_cast, Int.cast_mul]
   rw [ZMod.cast_mul (show p ^ n ∣ p ^ j from pow_dvd_pow _ hj), sub_self]
 #align padic_int.nth_hom_seq_mul PadicInt.nthHomSeq_mul
 
@@ -642,7 +642,7 @@ See also `PadicInt.lift_unique`.
 -/
 theorem lift_spec (n : ℕ) : (toZModPow n).comp (lift f_compat) = f n := by
   ext r
-  rw [RingHom.comp_apply, ← ZMod.nat_cast_zmod_val (f n r), ← map_natCast <| toZModPow n, ←
+  rw [RingHom.comp_apply, ← ZMod.natCast_zmod_val (f n r), ← map_natCast <| toZModPow n, ←
     sub_eq_zero, ← RingHom.map_sub, ← RingHom.mem_ker, ker_toZModPow]
   apply lift_sub_val_mem_span
 #align padic_int.lift_spec PadicInt.lift_spec
chore: superfluous parentheses part 2 (#12131)

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

Diff
@@ -91,7 +91,7 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
   have key : ‖(r.num : ℚ_[p])‖ < 1 := by
     calc
       _ = _ := hr.symm
-      _ < 1 * 1 := (mul_lt_mul' h norm_denom_lt (norm_nonneg _) zero_lt_one)
+      _ < 1 * 1 := mul_lt_mul' h norm_denom_lt (norm_nonneg _) zero_lt_one
       _ = 1 := mul_one 1
 
   have : ↑p ∣ r.num ∧ (p : ℤ) ∣ r.den := by
chore(Data/Int/Cast): fix confusion between OfNat and Nat.cast lemmas (#11861)

This renames

  • Int.cast_ofNat to Int.cast_natCast
  • Int.int_cast_ofNat to Int.cast_ofNat

I think the history here is that this lemma was previously about Int.ofNat, before we globally fixed the simp-normal form to be Nat.cast.

Since the Int.cast_ofNat name is repurposed, it can't be deprecated. Int.int_cast_ofNat is such a wonky name that it was probably never used.

Diff
@@ -104,9 +104,9 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
 theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ↑p ∣ r.num - r.num * r.den.gcdA p % p * ↑r.den := by
   rw [← ZMod.int_cast_zmod_eq_zero_iff_dvd]
-  simp only [Int.cast_ofNat, ZMod.nat_cast_mod, Int.cast_mul, Int.cast_sub]
+  simp only [Int.cast_natCast, ZMod.nat_cast_mod, Int.cast_mul, Int.cast_sub]
   have := congr_arg (fun x => x % p : ℤ → ZMod p) (gcd_eq_gcd_ab r.den p)
-  simp only [Int.cast_ofNat, CharP.cast_eq_zero, EuclideanDomain.mod_zero, Int.cast_add,
+  simp only [Int.cast_natCast, CharP.cast_eq_zero, EuclideanDomain.mod_zero, Int.cast_add,
     Int.cast_mul, zero_mul, add_zero] at this
   push_cast
   rw [mul_right_comm, mul_assoc, ← this]
@@ -126,7 +126,7 @@ theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modP
   rw [norm_lt_one_iff_dvd, ← (isUnit_den r h).dvd_mul_right]
   suffices ↑p ∣ r.num - n * r.den by
     convert (Int.castRingHom ℤ_[p]).map_dvd this
-    simp only [sub_mul, Int.cast_ofNat, eq_intCast, Int.cast_mul, sub_left_inj, Int.cast_sub]
+    simp only [sub_mul, Int.cast_natCast, eq_intCast, Int.cast_mul, sub_left_inj, Int.cast_sub]
     apply Subtype.coe_injective
     simp only [coe_mul, Subtype.coe_mk, coe_nat_cast]
     rw_mod_cast [@Rat.mul_den_eq_num r]
@@ -164,7 +164,7 @@ theorem zmod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m 
   specialize this hm hn
   apply_fun ZMod.castHom (show p ∣ p ^ 1 by rw [pow_one]) (ZMod p) at this
   simp only [map_intCast] at this
-  simpa only [Int.cast_ofNat] using this
+  simpa only [Int.cast_natCast] using this
 #align padic_int.zmod_congr_of_sub_mem_max_ideal PadicInt.zmod_congr_of_sub_mem_max_ideal
 
 variable (x : ℤ_[p])
chore(Data/Int): Rename coe_nat to natCast (#11637)

Reduce the diff of #11499

Renames

All in the Int namespace:

  • ofNat_eq_castofNat_eq_natCast
  • cast_eq_cast_iff_NatnatCast_inj
  • natCast_eq_ofNatofNat_eq_natCast
  • coe_nat_subnatCast_sub
  • coe_nat_nonnegnatCast_nonneg
  • sign_coe_add_onesign_natCast_add_one
  • nat_succ_eq_int_succnatCast_succ
  • succ_neg_nat_succsucc_neg_natCast_succ
  • coe_pred_of_posnatCast_pred_of_pos
  • coe_nat_divnatCast_div
  • coe_nat_edivnatCast_ediv
  • sign_coe_nat_of_nonzerosign_natCast_of_ne_zero
  • toNat_coe_nattoNat_natCast
  • toNat_coe_nat_add_onetoNat_natCast_add_one
  • coe_nat_dvdnatCast_dvd_natCast
  • coe_nat_dvd_leftnatCast_dvd
  • coe_nat_dvd_rightdvd_natCast
  • le_coe_nat_suble_natCast_sub
  • succ_coe_nat_possucc_natCast_pos
  • coe_nat_modEq_iffnatCast_modEq_iff
  • coe_natAbsnatCast_natAbs
  • coe_nat_eq_zeronatCast_eq_zero
  • coe_nat_ne_zeronatCast_ne_zero
  • coe_nat_ne_zero_iff_posnatCast_ne_zero_iff_pos
  • abs_coe_natabs_natCast
  • coe_nat_nonpos_iffnatCast_nonpos_iff

Also rename Nat.coe_nat_dvd to Nat.cast_dvd_cast

Diff
@@ -98,7 +98,7 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
     simp only [← norm_int_lt_one_iff_dvd, ← padic_norm_e_of_padicInt]
     exact ⟨key, norm_denom_lt⟩
   apply hp_prime.1.not_dvd_one
-  rwa [← r.reduced.gcd_eq_one, Nat.dvd_gcd_iff, ← Int.coe_nat_dvd_left, ← Int.coe_nat_dvd]
+  rwa [← r.reduced.gcd_eq_one, Nat.dvd_gcd_iff, ← Int.natCast_dvd, ← Int.natCast_dvd_natCast]
 #align padic_int.is_unit_denom PadicInt.isUnit_den
 
 theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
@@ -115,7 +115,7 @@ theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     simp only [mul_one, cast_one, sub_self]
   apply Coprime.symm
   apply (coprime_or_dvd_of_prime hp_prime.1 _).resolve_right
-  rw [← Int.coe_nat_dvd, ← norm_int_lt_one_iff_dvd, not_lt]
+  rw [← Int.natCast_dvd_natCast, ← norm_int_lt_one_iff_dvd, not_lt]
   apply ge_of_eq
   rw [← isUnit_iff]
   exact isUnit_den r h
change the order of operation in zsmulRec and nsmulRec (#11451)

We change the following field in the definition of an additive commutative monoid:

 nsmul_succ : ∀ (n : ℕ) (x : G),
-  AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+  AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x

where the latter is more natural

We adjust the definitions of ^ in monoids, groups, etc. Originally there was a warning comment about why this natural order was preferred

use x * npowRec n x and not npowRec n x * x in the definition to make sure that definitional unfolding of npowRec is blocked, to avoid deep recursion issues.

but it seems to no longer apply.

Remarks on the PR :

  • pow_succ and pow_succ' have switched their meanings.
  • Most of the time, the proofs were adjusted by priming/unpriming one lemma, or exchanging left and right; a few proofs were more complicated to adjust.
  • In particular, [Mathlib/NumberTheory/RamificationInertia.lean] used Ideal.IsPrime.mul_mem_pow which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul.
  • the docstring for Cauchy condensation test in [Mathlib/Analysis/PSeries.lean] was mathematically incorrect, I added the mention that the function is antitone.
Diff
@@ -322,7 +322,7 @@ theorem appr_lt (x : ℤ_[p]) (n : ℕ) : x.appr n < p ^ n := by
       apply Nat.mul_le_mul_left
       apply le_pred_of_lt
       apply ZMod.val_lt
-    · rw [mul_tsub, mul_one, ← _root_.pow_succ']
+    · rw [mul_tsub, mul_one, ← _root_.pow_succ]
       apply add_tsub_cancel_of_le (le_of_lt hp)
 #align padic_int.appr_lt PadicInt.appr_lt
 
@@ -369,7 +369,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ Ideal.span {(p :
     congr
     simp only [hc]
   rw [show (x - (appr x n : ℤ_[p])).valuation = ((p : ℤ_[p]) ^ n * c).valuation by rw [hc]]
-  rw [valuation_p_pow_mul _ _ hc', add_sub_cancel_left, _root_.pow_succ', ← mul_sub]
+  rw [valuation_p_pow_mul _ _ hc', add_sub_cancel_left, _root_.pow_succ, ← mul_sub]
   apply mul_dvd_mul_left
   obtain hc0 | hc0 := eq_or_ne c.valuation.natAbs 0
   · simp only [hc0, mul_one, _root_.pow_zero]
chore(Data/Nat): Use Std lemmas (#11661)

Move basic Nat lemmas from Data.Nat.Order.Basic and Data.Nat.Pow to Data.Nat.Defs. Most proofs need adapting, but that's easily solved by replacing the general mathlib lemmas by the new Std Nat-specific lemmas and using omega.

Other changes

  • Move the last few lemmas left in Data.Nat.Pow to Algebra.GroupPower.Order
  • Move the deprecated aliases from Data.Nat.Pow to Algebra.GroupPower.Order
  • Move the bit/bit0/bit1 lemmas from Data.Nat.Order.Basic to Data.Nat.Bits
  • Fix some fallout from not importing Data.Nat.Order.Basic anymore
  • Add a few Nat-specific lemmas to help fix the fallout (look for nolint simpNF)
  • Turn Nat.mul_self_le_mul_self_iff and Nat.mul_self_lt_mul_self_iff around (they were misnamed)
  • Make more arguments to Nat.one_lt_pow implicit
Diff
@@ -533,7 +533,7 @@ theorem nthHomSeq_one : nthHomSeq f_compat 1 ≈ 1 := by
   change _ < _ at hε
   use 1
   intro j hj
-  haveI : Fact (1 < p ^ j) := ⟨Nat.one_lt_pow _ _ (by omega) hp_prime.1.one_lt⟩
+  haveI : Fact (1 < p ^ j) := ⟨Nat.one_lt_pow (by omega) hp_prime.1.one_lt⟩
   suffices (ZMod.cast (1 : ZMod (p ^ j)) : ℚ) = 1 by simp [nthHomSeq, nthHom, this, hε]
   rw [ZMod.cast_eq_val, ZMod.val_one, Nat.cast_one]
 #align padic_int.nth_hom_seq_one PadicInt.nthHomSeq_one
chore: Rename mul-div cancellation lemmas (#11530)

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

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

| Statement | New name | Old name | |

Diff
@@ -369,7 +369,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ Ideal.span {(p :
     congr
     simp only [hc]
   rw [show (x - (appr x n : ℤ_[p])).valuation = ((p : ℤ_[p]) ^ n * c).valuation by rw [hc]]
-  rw [valuation_p_pow_mul _ _ hc', add_sub_cancel', _root_.pow_succ', ← mul_sub]
+  rw [valuation_p_pow_mul _ _ hc', add_sub_cancel_left, _root_.pow_succ', ← mul_sub]
   apply mul_dvd_mul_left
   obtain hc0 | hc0 := eq_or_ne c.valuation.natAbs 0
   · simp only [hc0, mul_one, _root_.pow_zero]
chore: scope open Classical (#11199)

We remove all but one open Classicals, instead preferring to use open scoped Classical. The only real side-effect this led to is moving a couple declarations to use Exists.choose instead of Classical.choose.

The first few commits are explicitly labelled regex replaces for ease of review.

Diff
@@ -41,7 +41,8 @@ which removes some boilerplate code.
 
 noncomputable section
 
-open Classical Nat LocalRing Padic
+open scoped Classical
+open Nat LocalRing Padic
 
 namespace PadicInt
 
refactor: optimize proofs with omega (#11093)

I ran tryAtEachStep on all files under Mathlib to find all locations where omega succeeds. For each that was a linarith without an only, I tried replacing it with omega, and I verified that elaboration time got smaller. (In almost all cases, there was a noticeable speedup.) I also replaced some slow aesops along the way.

Diff
@@ -532,7 +532,7 @@ theorem nthHomSeq_one : nthHomSeq f_compat 1 ≈ 1 := by
   change _ < _ at hε
   use 1
   intro j hj
-  haveI : Fact (1 < p ^ j) := ⟨Nat.one_lt_pow _ _ (by linarith) hp_prime.1.one_lt⟩
+  haveI : Fact (1 < p ^ j) := ⟨Nat.one_lt_pow _ _ (by omega) hp_prime.1.one_lt⟩
   suffices (ZMod.cast (1 : ZMod (p ^ j)) : ℚ) = 1 by simp [nthHomSeq, nthHom, this, hε]
   rw [ZMod.cast_eq_val, ZMod.val_one, Nat.cast_one]
 #align padic_int.nth_hom_seq_one PadicInt.nthHomSeq_one
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

No changes to tactic file, it's just boring fixes throughout the library.

This follows on from #6964.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -109,8 +109,8 @@ theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     Int.cast_mul, zero_mul, add_zero] at this
   push_cast
   rw [mul_right_comm, mul_assoc, ← this]
-  suffices rdcp : r.den.Coprime p
-  · rw [rdcp.gcd_eq_one]
+  suffices rdcp : r.den.Coprime p by
+    rw [rdcp.gcd_eq_one]
     simp only [mul_one, cast_one, sub_self]
   apply Coprime.symm
   apply (coprime_or_dvd_of_prime hp_prime.1 _).resolve_right
chore: bump Std (#10482)

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

Diff
@@ -272,7 +272,7 @@ This coercion is only a ring homomorphism if it coerces into a ring whose charac
 theorem toZMod_spec : x - (ZMod.cast (toZMod x) : ℤ_[p]) ∈ maximalIdeal ℤ_[p] := by
   convert sub_zmodRepr_mem x using 2
   dsimp [toZMod, toZModHom]
-  rcases exists_eq_add_of_lt hp_prime.1.pos with ⟨p', rfl⟩
+  rcases Nat.exists_eq_add_of_lt hp_prime.1.pos with ⟨p', rfl⟩
   change ↑((_ : ZMod (0 + p' + 1)).val) = (_ : ℤ_[0 + p' + 1])
   simp only [ZMod.val_nat_cast, add_zero, add_def, Nat.cast_inj, zero_add]
   apply mod_eq_of_lt
feat: The support of f ^ n (#9617)

This involves moving lemmas from Algebra.GroupPower.Ring to Algebra.GroupWithZero.Basic and changing some 0 < n assumptions to n ≠ 0.

From LeanAPAP

Diff
@@ -370,7 +370,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ Ideal.span {(p :
   rw [show (x - (appr x n : ℤ_[p])).valuation = ((p : ℤ_[p]) ^ n * c).valuation by rw [hc]]
   rw [valuation_p_pow_mul _ _ hc', add_sub_cancel', _root_.pow_succ', ← mul_sub]
   apply mul_dvd_mul_left
-  obtain hc0 | hc0 := c.valuation.natAbs.eq_zero_or_pos
+  obtain hc0 | hc0 := eq_or_ne c.valuation.natAbs 0
   · simp only [hc0, mul_one, _root_.pow_zero]
     rw [mul_comm, unitCoeff_spec h] at hc
     suffices c = unitCoeff h by
@@ -382,10 +382,9 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ Ideal.span {(p :
       rw [isUnit_iff, norm_eq_pow_val hc', hc0, neg_zero, zpow_zero]
     rw [DiscreteValuationRing.unit_mul_pow_congr_unit _ _ _ _ _ hc]
     exact irreducible_p
-  · rw [zero_pow hc0]
-    simp only [sub_zero, ZMod.cast_zero, mul_zero]
+  · simp only [zero_pow hc0, sub_zero, ZMod.cast_zero, mul_zero]
     rw [unitCoeff_spec hc']
-    exact (dvd_pow_self (p : ℤ_[p]) hc0.ne').mul_left _
+    exact (dvd_pow_self (p : ℤ_[p]) hc0).mul_left _
 #align padic_int.appr_spec PadicInt.appr_spec
 
 /-- A ring hom from `ℤ_[p]` to `ZMod (p^n)`, with underlying function `PadicInt.appr n`. -/
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
@@ -269,7 +269,7 @@ to coerce to rings of arbitrary characteristic, instead of only rings of charact
 This coercion is only a ring homomorphism if it coerces into a ring whose characteristic divides
 `p`. While this is not the case here we can still make use of the coercion.
 -/
-theorem toZMod_spec : x - (toZMod x : ℤ_[p]) ∈ maximalIdeal ℤ_[p] := by
+theorem toZMod_spec : x - (ZMod.cast (toZMod x) : ℤ_[p]) ∈ maximalIdeal ℤ_[p] := by
   convert sub_zmodRepr_mem x using 2
   dsimp [toZMod, toZModHom]
   rcases exists_eq_add_of_lt hp_prime.1.pos with ⟨p', rfl⟩
@@ -441,7 +441,8 @@ theorem zmod_cast_comp_toZModPow (m n : ℕ) (h : m ≤ n) :
 #align padic_int.zmod_cast_comp_to_zmod_pow PadicInt.zmod_cast_comp_toZModPow
 
 @[simp]
-theorem cast_toZModPow (m n : ℕ) (h : m ≤ n) (x : ℤ_[p]) : ↑(toZModPow n x) = toZModPow m x := by
+theorem cast_toZModPow (m n : ℕ) (h : m ≤ n) (x : ℤ_[p]) :
+    ZMod.cast (toZModPow n x) = toZModPow m x := by
   rw [← zmod_cast_comp_toZModPow _ _ h]
   rfl
 #align padic_int.cast_to_zmod_pow PadicInt.cast_toZModPow
@@ -533,7 +534,7 @@ theorem nthHomSeq_one : nthHomSeq f_compat 1 ≈ 1 := by
   use 1
   intro j hj
   haveI : Fact (1 < p ^ j) := ⟨Nat.one_lt_pow _ _ (by linarith) hp_prime.1.one_lt⟩
-  suffices ((1 : ZMod (p ^ j)) : ℚ) = 1 by simp [nthHomSeq, nthHom, this, hε]
+  suffices (ZMod.cast (1 : ZMod (p ^ j)) : ℚ) = 1 by simp [nthHomSeq, nthHom, this, hε]
   rw [ZMod.cast_eq_val, ZMod.val_one, Nat.cast_one]
 #align padic_int.nth_hom_seq_one PadicInt.nthHomSeq_one
 
chore: Rename pow monotonicity lemmas (#9095)

The names for lemmas about monotonicity of (a ^ ·) and (· ^ n) were a mess. This PR tidies up everything related by following the naming convention for (a * ·) and (· * b). Namely, (a ^ ·) is pow_right and (· ^ n) is pow_left in lemma names. All lemma renames follow the corresponding multiplication lemma names closely.

Renames

Algebra.GroupPower.Order

  • pow_monopow_right_mono
  • pow_le_powpow_le_pow_right
  • pow_le_pow_of_le_leftpow_le_pow_left
  • pow_lt_pow_of_lt_leftpow_lt_pow_left
  • strictMonoOn_powpow_left_strictMonoOn
  • pow_strictMono_rightpow_right_strictMono
  • pow_lt_powpow_lt_pow_right
  • pow_lt_pow_iffpow_lt_pow_iff_right
  • pow_le_pow_iffpow_le_pow_iff_right
  • self_lt_powlt_self_pow
  • strictAnti_powpow_right_strictAnti
  • pow_lt_pow_iff_of_lt_onepow_lt_pow_iff_right_of_lt_one
  • pow_lt_pow_of_lt_onepow_lt_pow_right_of_lt_one
  • lt_of_pow_lt_powlt_of_pow_lt_pow_left
  • le_of_pow_le_powle_of_pow_le_pow_left
  • pow_lt_pow₀pow_lt_pow_right₀

Algebra.GroupPower.CovariantClass

  • pow_le_pow_of_le_left'pow_le_pow_left'
  • nsmul_le_nsmul_of_le_rightnsmul_le_nsmul_right
  • pow_lt_pow'pow_lt_pow_right'
  • nsmul_lt_nsmulnsmul_lt_nsmul_left
  • pow_strictMono_leftpow_right_strictMono'
  • nsmul_strictMono_rightnsmul_left_strictMono
  • StrictMono.pow_right'StrictMono.pow_const
  • StrictMono.nsmul_leftStrictMono.const_nsmul
  • pow_strictMono_right'pow_left_strictMono
  • nsmul_strictMono_leftnsmul_right_strictMono
  • Monotone.pow_rightMonotone.pow_const
  • Monotone.nsmul_leftMonotone.const_nsmul
  • lt_of_pow_lt_pow'lt_of_pow_lt_pow_left'
  • lt_of_nsmul_lt_nsmullt_of_nsmul_lt_nsmul_right
  • pow_le_pow'pow_le_pow_right'
  • nsmul_le_nsmulnsmul_le_nsmul_left
  • pow_le_pow_of_le_one'pow_le_pow_right_of_le_one'
  • nsmul_le_nsmul_of_nonposnsmul_le_nsmul_left_of_nonpos
  • le_of_pow_le_pow'le_of_pow_le_pow_left'
  • le_of_nsmul_le_nsmul'le_of_nsmul_le_nsmul_right'
  • pow_le_pow_iff'pow_le_pow_iff_right'
  • nsmul_le_nsmul_iffnsmul_le_nsmul_iff_left
  • pow_lt_pow_iff'pow_lt_pow_iff_right'
  • nsmul_lt_nsmul_iffnsmul_lt_nsmul_iff_left

Data.Nat.Pow

  • Nat.pow_lt_pow_of_lt_leftNat.pow_lt_pow_left
  • Nat.pow_le_iff_le_leftNat.pow_le_pow_iff_left
  • Nat.pow_lt_iff_lt_leftNat.pow_lt_pow_iff_left

Lemmas added

  • pow_le_pow_iff_left
  • pow_lt_pow_iff_left
  • pow_right_injective
  • pow_right_inj
  • Nat.pow_le_pow_left to have the correct name since Nat.pow_le_pow_of_le_left is in Std.
  • Nat.pow_le_pow_right to have the correct name since Nat.pow_le_pow_of_le_right is in Std.

Lemmas removed

  • self_le_pow was a duplicate of le_self_pow.
  • Nat.pow_lt_pow_of_lt_right is defeq to pow_lt_pow_right.
  • Nat.pow_right_strictMono is defeq to pow_right_strictMono.
  • Nat.pow_le_iff_le_right is defeq to pow_le_pow_iff_right.
  • Nat.pow_lt_iff_lt_right is defeq to pow_lt_pow_iff_right.

Other changes

  • A bunch of proofs have been golfed.
  • Some lemma assumptions have been turned from 0 < n or 1 ≤ n to n ≠ 0.
  • A few Nat lemmas have been protected.
  • One docstring has been fixed.
Diff
@@ -310,7 +310,7 @@ theorem appr_lt (x : ℤ_[p]) (n : ℕ) : x.appr n < p ^ n := by
   induction' n with n ih generalizing x
   · simp only [appr, zero_eq, _root_.pow_zero, zero_lt_one]
   simp only [appr, map_natCast, ZMod.nat_cast_self, RingHom.map_pow, Int.natAbs, RingHom.map_mul]
-  have hp : p ^ n < p ^ (n + 1) := by apply pow_lt_pow hp_prime.1.one_lt (lt_add_one n)
+  have hp : p ^ n < p ^ (n + 1) := by apply pow_lt_pow_right hp_prime.1.one_lt (lt_add_one n)
   split_ifs with h
   · apply lt_trans (ih _) hp
   · calc
chore: replace exact_mod_cast tactic with mod_cast elaborator where possible (#8404)

We still have the exact_mod_cast tactic, used in a few places, which somehow (?) works a little bit harder to prevent the expected type influencing the elaboration of the term. I would like to get to the bottom of this, and it will be easier once the only usages of exact_mod_cast are the ones that don't work using the term elaborator by itself.

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

Diff
@@ -71,11 +71,11 @@ variable {p}
 theorem modPart_lt_p : modPart p r < p := by
   convert Int.emod_lt _ _
   · simp
-  · exact_mod_cast hp_prime.1.ne_zero
+  · exact mod_cast hp_prime.1.ne_zero
 #align padic_int.mod_part_lt_p PadicInt.modPart_lt_p
 
 theorem modPart_nonneg : 0 ≤ modPart p r :=
-  Int.emod_nonneg _ <| by exact_mod_cast hp_prime.1.ne_zero
+  Int.emod_nonneg _ <| mod_cast hp_prime.1.ne_zero
 #align padic_int.mod_part_nonneg PadicInt.modPart_nonneg
 
 theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : ℤ_[p]) := by
@@ -182,7 +182,7 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
   lift n to ℕ using hzn
   use n
   constructor
-  · exact_mod_cast hnp
+  · exact mod_cast hnp
   simp only [norm_def, coe_sub, Subtype.coe_mk, coe_nat_cast] at hn ⊢
   rw [show (x - n : ℚ_[p]) = x - r + (r - n) by ring]
   apply lt_of_le_of_lt (padicNormE.nonarchimedean _ _)
@@ -515,7 +515,7 @@ theorem isCauSeq_nthHom (r : R) : IsCauSeq (padicNorm p) fun n => nthHom f r n :
   beta_reduce
   norm_cast
   rw [← padicNorm.dvd_iff_norm_le]
-  exact_mod_cast pow_dvd_nthHom_sub f_compat r k j hj
+  exact mod_cast pow_dvd_nthHom_sub f_compat r k j hj
 #align padic_int.is_cau_seq_nth_hom PadicInt.isCauSeq_nthHom
 
 /-- `nthHomSeq f_compat r` bundles `PadicInt.nthHom f r`
chore: bump to v4.3.0-rc2 (#8366)

PR contents

This is the supremum of

along with some minor fixes from failures on nightly-testing as Mathlib master is merged into it.

Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.

I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0 branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.

Lean PRs involved in this bump

In particular this includes adjustments for the Lean PRs

leanprover/lean4#2778

We can get rid of all the

local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)

macros across Mathlib (and in any projects that want to write natural number powers of reals).

leanprover/lean4#2722

Changes the default behaviour of simp to (config := {decide := false}). This makes simp (and consequentially norm_num) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp or norm_num to decide or rfl, or adding (config := {decide := true}).

leanprover/lean4#2783

This changed the behaviour of simp so that simp [f] will only unfold "fully applied" occurrences of f. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true }). We may in future add a syntax for this, e.g. simp [!f]; please provide feedback! In the meantime, we have made the following changes:

  • switching to using explicit lemmas that have the intended level of application
  • (config := { unfoldPartialApp := true }) in some places, to recover the old behaviour
  • Using @[eqns] to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp and Function.flip.

This change in Lean may require further changes down the line (e.g. adding the !f syntax, and/or upstreaming the special treatment for Function.comp and Function.flip, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>

Diff
@@ -146,7 +146,7 @@ theorem zmod_congr_of_sub_mem_span_aux (n : ℕ) (x : ℤ_[p]) (a b : ℤ)
   rw [← dvd_neg, neg_sub] at ha
   have := dvd_add ha hb
   rwa [sub_eq_add_neg, sub_eq_add_neg, add_assoc, neg_add_cancel_left, ← sub_eq_add_neg, ←
-    Int.cast_sub, pow_p_dvd_int_iff, Nat.cast_pow] at this
+    Int.cast_sub, pow_p_dvd_int_iff] at this
 #align padic_int.zmod_congr_of_sub_mem_span_aux PadicInt.zmod_congr_of_sub_mem_span_aux
 
 theorem zmod_congr_of_sub_mem_span (n : ℕ) (x : ℤ_[p]) (a b : ℕ)
@@ -488,7 +488,9 @@ def nthHom (r : R) : ℕ → ℤ := fun n => (f n r : ZMod (p ^ n)).val
 #align padic_int.nth_hom PadicInt.nthHom
 
 @[simp]
-theorem nthHom_zero : nthHom f 0 = 0 := by simp [nthHom]; rfl
+theorem nthHom_zero : nthHom f 0 = 0 := by
+  simp (config := { unfoldPartialApp := true }) [nthHom]
+  rfl
 #align padic_int.nth_hom_zero PadicInt.nthHom_zero
 
 variable {f}
@@ -671,7 +673,7 @@ theorem ext_of_toZModPow {x y : ℤ_[p]} : (∀ n, toZModPow n x = toZModPow n y
   constructor
   · intro h
     rw [← lift_self x, ← lift_self y]
-    simp [lift, limNthHom, nthHom, h]
+    simp (config := { unfoldPartialApp := true }) [lift, limNthHom, nthHom, h]
   · rintro rfl _
     rfl
 #align padic_int.ext_of_to_zmod_pow PadicInt.ext_of_toZModPow
chore: bump toolchain to v4.3.0-rc1 (#8051)

This incorporates changes from

  • #7845
  • #7847
  • #7853
  • #7872 (was never actually made to work, but the diffs in nightly-testing are unexciting: we need to fully qualify a few names)

They can all be closed when this is merged.

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

Diff
@@ -508,6 +508,9 @@ theorem isCauSeq_nthHom (r : R) : IsCauSeq (padicNorm p) fun n => nthHom f r n :
   use k
   intro j hj
   refine' lt_of_le_of_lt _ hk
+  -- Need to do beta reduction first, as `norm_cast` doesn't.
+  -- Added to adapt to leanprover/lean4#2734.
+  beta_reduce
   norm_cast
   rw [← padicNorm.dvd_iff_norm_le]
   exact_mod_cast pow_dvd_nthHom_sub f_compat r k j hj
chore: missing spaces after rcases, convert and congrm (#7725)

Replace rcases( with rcases (. Same thing for convert( and congrm(. No other change.

Diff
@@ -124,7 +124,7 @@ theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modP
   let n := modPart p r
   rw [norm_lt_one_iff_dvd, ← (isUnit_den r h).dvd_mul_right]
   suffices ↑p ∣ r.num - n * r.den by
-    convert(Int.castRingHom ℤ_[p]).map_dvd this
+    convert (Int.castRingHom ℤ_[p]).map_dvd this
     simp only [sub_mul, Int.cast_ofNat, eq_intCast, Int.cast_mul, sub_left_inj, Int.cast_sub]
     apply Subtype.coe_injective
     simp only [coe_mul, Subtype.coe_mk, coe_nat_cast]
chore: only four spaces for subsequent lines (#7286)

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

Diff
@@ -403,7 +403,7 @@ def toZModPow (n : ℕ) : ℤ_[p] →+* ZMod (p ^ n) :=
 #align padic_int.to_zmod_pow PadicInt.toZModPow
 
 theorem ker_toZModPow (n : ℕ) :
-  RingHom.ker (toZModPow n : ℤ_[p] →+* ZMod (p ^ n)) = Ideal.span {(p : ℤ_[p]) ^ n} := by
+    RingHom.ker (toZModPow n : ℤ_[p] →+* ZMod (p ^ n)) = Ideal.span {(p : ℤ_[p]) ^ n} := by
   ext x
   rw [RingHom.mem_ker]
   constructor
chore: bump to v4.1.0-rc1 (2nd attempt) (#7216)

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

Diff
@@ -109,10 +109,10 @@ theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     Int.cast_mul, zero_mul, add_zero] at this
   push_cast
   rw [mul_right_comm, mul_assoc, ← this]
-  suffices rdcp : r.den.coprime p
+  suffices rdcp : r.den.Coprime p
   · rw [rdcp.gcd_eq_one]
     simp only [mul_one, cast_one, sub_self]
-  apply coprime.symm
+  apply Coprime.symm
   apply (coprime_or_dvd_of_prime hp_prime.1 _).resolve_right
   rw [← Int.coe_nat_dvd, ← norm_int_lt_one_iff_dvd, not_lt]
   apply ge_of_eq
Revert "chore: bump to v4.1.0-rc1 (#7174)" (#7198)

This reverts commit 6f8e8104. Unfortunately this bump was not linted correctly, as CI did not run runLinter Mathlib.

We can unrevert once that's fixed.

Diff
@@ -109,10 +109,10 @@ theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     Int.cast_mul, zero_mul, add_zero] at this
   push_cast
   rw [mul_right_comm, mul_assoc, ← this]
-  suffices rdcp : r.den.Coprime p
+  suffices rdcp : r.den.coprime p
   · rw [rdcp.gcd_eq_one]
     simp only [mul_one, cast_one, sub_self]
-  apply Coprime.symm
+  apply coprime.symm
   apply (coprime_or_dvd_of_prime hp_prime.1 _).resolve_right
   rw [← Int.coe_nat_dvd, ← norm_int_lt_one_iff_dvd, not_lt]
   apply ge_of_eq
chore: bump to v4.1.0-rc1 (#7174)

Some changes have already been review and delegated in #6910 and #7148.

The diff that needs looking at is https://github.com/leanprover-community/mathlib4/pull/7174/commits/64d6d07ee18163627c8f517eb31455411921c5ac

The std bump PR was insta-merged already!

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -109,10 +109,10 @@ theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     Int.cast_mul, zero_mul, add_zero] at this
   push_cast
   rw [mul_right_comm, mul_assoc, ← this]
-  suffices rdcp : r.den.coprime p
+  suffices rdcp : r.den.Coprime p
   · rw [rdcp.gcd_eq_one]
     simp only [mul_one, cast_one, sub_self]
-  apply coprime.symm
+  apply Coprime.symm
   apply (coprime_or_dvd_of_prime hp_prime.1 _).resolve_right
   rw [← Int.coe_nat_dvd, ← norm_int_lt_one_iff_dvd, not_lt]
   apply ge_of_eq
chore: drop MulZeroClass. in mul_zero/zero_mul (#6682)

Search&replace MulZeroClass.mul_zero -> mul_zero, MulZeroClass.zero_mul -> zero_mul.

These were introduced by Mathport, as the full name of mul_zero is actually MulZeroClass.mul_zero (it's exported with the short name).

Diff
@@ -362,7 +362,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ Ideal.span {(p :
   simp only [map_natCast, ZMod.nat_cast_self, RingHom.map_pow, RingHom.map_mul, ZMod.nat_cast_val]
   have hc' : c ≠ 0 := by
     rintro rfl
-    simp only [MulZeroClass.mul_zero] at hc
+    simp only [mul_zero] at hc
     contradiction
   conv_rhs =>
     congr
@@ -383,7 +383,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ Ideal.span {(p :
     rw [DiscreteValuationRing.unit_mul_pow_congr_unit _ _ _ _ _ hc]
     exact irreducible_p
   · rw [zero_pow hc0]
-    simp only [sub_zero, ZMod.cast_zero, MulZeroClass.mul_zero]
+    simp only [sub_zero, ZMod.cast_zero, mul_zero]
     rw [unitCoeff_spec hc']
     exact (dvd_pow_self (p : ℤ_[p]) hc0.ne').mul_left _
 #align padic_int.appr_spec PadicInt.appr_spec
chore: remove unused simps (#6632)

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

Diff
@@ -341,7 +341,6 @@ theorem dvd_appr_sub_appr (x : ℤ_[p]) (m n : ℕ) (h : m ≤ n) : p ^ m ∣ x.
   dsimp [appr]
   split_ifs with h
   · exact ih
-  dsimp
   rw [add_comm, add_tsub_assoc_of_le (appr_mono _ (Nat.le_add_right m k))]
   apply dvd_add _ ih
   apply dvd_mul_of_dvd_left
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
@@ -477,7 +477,7 @@ section lift
 
 open CauSeq PadicSeq
 
-variable {R : Type _} [NonAssocSemiring R] (f : ∀ k : ℕ, R →+* ZMod (p ^ k))
+variable {R : Type*} [NonAssocSemiring R] (f : ∀ k : ℕ, R →+* ZMod (p ^ k))
   (f_compat : ∀ (k1 k2) (hk : k1 ≤ k2), (ZMod.castHom (pow_dvd_pow p hk) _).comp (f k2) = f k1)
 
 /-- Given a family of ring homs `f : Π n : ℕ, R →+* ZMod (p ^ n)`,
@@ -674,7 +674,7 @@ theorem ext_of_toZModPow {x y : ℤ_[p]} : (∀ n, toZModPow n x = toZModPow n y
     rfl
 #align padic_int.ext_of_to_zmod_pow PadicInt.ext_of_toZModPow
 
-theorem toZModPow_eq_iff_ext {R : Type _} [NonAssocSemiring R] {g g' : R →+* ℤ_[p]} :
+theorem toZModPow_eq_iff_ext {R : Type*} [NonAssocSemiring R] {g g' : R →+* ℤ_[p]} :
     (∀ n, (toZModPow n).comp g = (toZModPow n).comp g') ↔ g = g' := by
   constructor
   · intro hg
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,15 +2,12 @@
 Copyright (c) 2020 Johan Commelin, Robert Y. Lewis. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Robert Y. Lewis
-
-! This file was ported from Lean 3 source module number_theory.padics.ring_homs
-! leanprover-community/mathlib commit 565eb991e264d0db702722b4bde52ee5173c9950
-! 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.NumberTheory.Padics.PadicIntegers
 
+#align_import number_theory.padics.ring_homs from "leanprover-community/mathlib"@"565eb991e264d0db702722b4bde52ee5173c9950"
+
 /-!
 
 # Relating `ℤ_[p]` to `ZMod (p ^ n)`
chore: remove occurrences of semicolon after space (#5713)

This is the second half of the changes originally in #5699, removing all occurrences of ; after a space and implementing a linter rule to enforce it.

In most cases this 2-character substring has a space after it, so the following command was run first:

find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;

The remaining cases were few enough in number that they were done manually.

Diff
@@ -663,7 +663,7 @@ theorem lift_unique (g : R →+* ℤ_[p]) (hg : ∀ n, (toZModPow n).comp g = f
 theorem lift_self (z : ℤ_[p]) : @lift p _ ℤ_[p] _ toZModPow zmod_cast_comp_toZModPow z = z := by
   show _ = RingHom.id _ z
   rw [@lift_unique p _ ℤ_[p] _ _ zmod_cast_comp_toZModPow (RingHom.id ℤ_[p])]
-  intro ; rw [RingHom.comp_id]
+  intro; rw [RingHom.comp_id]
 #align padic_int.lift_self PadicInt.lift_self
 
 end lift
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -164,7 +164,7 @@ theorem zmod_congr_of_sub_mem_max_ideal (x : ℤ_[p]) (m n : ℕ) (hm : x - m 
   have := zmod_congr_of_sub_mem_span_aux 1 x m n
   simp only [pow_one] at this
   specialize this hm hn
-  apply_fun ZMod.castHom (show p ∣ p ^ 1 by rw [pow_one]) (ZMod p)  at this
+  apply_fun ZMod.castHom (show p ∣ p ^ 1 by rw [pow_one]) (ZMod p) at this
   simp only [map_intCast] at this
   simpa only [Int.cast_ofNat] using this
 #align padic_int.zmod_congr_of_sub_mem_max_ideal PadicInt.zmod_congr_of_sub_mem_max_ideal
@@ -186,7 +186,7 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
   use n
   constructor
   · exact_mod_cast hnp
-  simp only [norm_def, coe_sub, Subtype.coe_mk, coe_nat_cast] at hn⊢
+  simp only [norm_def, coe_sub, Subtype.coe_mk, coe_nat_cast] at hn ⊢
   rw [show (x - n : ℚ_[p]) = x - r + (r - n) by ring]
   apply lt_of_le_of_lt (padicNormE.nonarchimedean _ _)
   apply max_lt hr
@@ -579,7 +579,7 @@ theorem limNthHom_spec (r : R) :
     ∀ ε : ℝ, 0 < ε → ∃ N : ℕ, ∀ n ≥ N, ‖limNthHom f_compat r - nthHom f r n‖ < ε := by
   intro ε hε
   obtain ⟨ε', hε'0, hε'⟩ : ∃ v : ℚ, (0 : ℝ) < v ∧ ↑v < ε := exists_rat_btwn hε
-  norm_cast  at hε'0
+  norm_cast at hε'0
   obtain ⟨N, hN⟩ := padicNormE.defn (nthHomSeq f_compat r) hε'0
   use N
   intro n hn
chore: fix many typos (#4967)

These are all doc fixes

Diff
@@ -266,7 +266,7 @@ def toZMod : ℤ_[p] →+* ZMod p :=
 /-- `z - (toZMod z : ℤ_[p])` is contained in the maximal ideal of `ℤ_[p]`, for every `z : ℤ_[p]`.
 
 The coercion from `ZMod p` to `ℤ_[p]` is `ZMod.cast`,
-which coerces `ZMod p` into artibrary rings.
+which coerces `ZMod p` into arbitrary rings.
 This is unfortunate, but a consequence of the fact that we allow `ZMod p`
 to coerce to rings of arbitrary characteristic, instead of only rings of characteristic `p`.
 This coercion is only a ring homomorphism if it coerces into a ring whose characteristic divides
chore: tidy various files (#4466)
Diff
@@ -44,9 +44,7 @@ which removes some boilerplate code.
 
 noncomputable section
 
-open Classical
-
-open Nat LocalRing Padic
+open Classical Nat LocalRing Padic
 
 namespace PadicInt
 
@@ -59,8 +57,8 @@ section RingHoms
 
 variable (p) (r : ℚ)
 
-/-- `mod_part p r` is an integer that satisfies
-`‖(r - mod_part p r : ℚ_[p])‖ < 1` when `‖(r : ℚ_[p])‖ ≤ 1`,
+/-- `modPart p r` is an integer that satisfies
+`‖(r - modPart p r : ℚ_[p])‖ < 1` when `‖(r : ℚ_[p])‖ ≤ 1`,
 see `PadicInt.norm_sub_modPart`.
 It is the unique non-negative integer that is `< p` with this property.
 
@@ -105,7 +103,7 @@ theorem isUnit_den (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) : IsUnit (r.den : 
   rwa [← r.reduced.gcd_eq_one, Nat.dvd_gcd_iff, ← Int.coe_nat_dvd_left, ← Int.coe_nat_dvd]
 #align padic_int.is_unit_denom PadicInt.isUnit_den
 
-theorem norm_sub_mod_part_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
+theorem norm_sub_modPart_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
     ↑p ∣ r.num - r.num * r.den.gcdA p % p * ↑r.den := by
   rw [← ZMod.int_cast_zmod_eq_zero_iff_dvd]
   simp only [Int.cast_ofNat, ZMod.nat_cast_mod, Int.cast_mul, Int.cast_sub]
@@ -123,7 +121,7 @@ theorem norm_sub_mod_part_aux (r : ℚ) (h : ‖(r : ℚ_[p])‖ ≤ 1) :
   apply ge_of_eq
   rw [← isUnit_iff]
   exact isUnit_den r h
-#align padic_int.norm_sub_mod_part_aux PadicInt.norm_sub_mod_part_aux
+#align padic_int.norm_sub_mod_part_aux PadicInt.norm_sub_modPart_aux
 
 theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modPart p r : ℤ_[p])‖ < 1 := by
   let n := modPart p r
@@ -135,7 +133,7 @@ theorem norm_sub_modPart (h : ‖(r : ℚ_[p])‖ ≤ 1) : ‖(⟨r, h⟩ - modP
     simp only [coe_mul, Subtype.coe_mk, coe_nat_cast]
     rw_mod_cast [@Rat.mul_den_eq_num r]
     rfl
-  exact norm_sub_mod_part_aux r h
+  exact norm_sub_modPart_aux r h
 #align padic_int.norm_sub_mod_part PadicInt.norm_sub_modPart
 
 theorem exists_mem_range_of_norm_rat_le_one (h : ‖(r : ℚ_[p])‖ ≤ 1) :
@@ -180,7 +178,7 @@ theorem exists_mem_range : ∃ n : ℕ, n < p ∧ x - n ∈ maximalIdeal ℤ_[p]
     rw [norm_sub_rev] at hr
     calc
       _ = ‖(r : ℚ_[p]) - x + x‖ := by ring_nf
-      _ ≤ _ := (padicNormE.nonarchimedean _ _)
+      _ ≤ _ := padicNormE.nonarchimedean _ _
       _ ≤ _ := max_le (le_of_lt hr) x.2
 
   obtain ⟨n, hzn, hnp, hn⟩ := exists_mem_range_of_norm_rat_le_one r H
@@ -214,7 +212,7 @@ theorem sub_zmodRepr_mem : x - zmodRepr x ∈ maximalIdeal ℤ_[p] :=
   (zmodRepr_spec _).2
 #align padic_int.sub_zmod_repr_mem PadicInt.sub_zmodRepr_mem
 
-/-- `to_zmod_hom` is an auxiliary constructor for creating ring homs from `ℤ_[p]` to `ZMod v`.
+/-- `toZModHom` is an auxiliary constructor for creating ring homs from `ℤ_[p]` to `ZMod v`.
 -/
 def toZModHom (v : ℕ) (f : ℤ_[p] → ℕ) (f_spec : ∀ x, x - f x ∈ (Ideal.span {↑v} : Ideal ℤ_[p]))
     (f_congr :
@@ -252,8 +250,8 @@ def toZModHom (v : ℕ) (f : ℤ_[p] → ℕ) (f_spec : ∀ x, x - f x ∈ (Idea
       ring
 #align padic_int.to_zmod_hom PadicInt.toZModHom
 
-/-- `to_zmod` is a ring hom from `ℤ_[p]` to `ZMod p`,
-with the equality `to_zmod x = (zmod_repr x : ZMod p)`.
+/-- `toZMod` is a ring hom from `ℤ_[p]` to `ZMod p`,
+with the equality `toZMod x = (zmodRepr x : ZMod p)`.
 -/
 def toZMod : ℤ_[p] →+* ZMod p :=
   toZModHom p zmodRepr
@@ -265,9 +263,9 @@ def toZMod : ℤ_[p] →+* ZMod p :=
       exact zmod_congr_of_sub_mem_max_ideal)
 #align padic_int.to_zmod PadicInt.toZMod
 
-/-- `z - (to_zmod z : ℤ_[p])` is contained in the maximal ideal of `ℤ_[p]`, for every `z : ℤ_[p]`.
+/-- `z - (toZMod z : ℤ_[p])` is contained in the maximal ideal of `ℤ_[p]`, for every `z : ℤ_[p]`.
 
-The coercion from `ZMod p` to `ℤ_[p]` is `zmod.has_coe_t`,
+The coercion from `ZMod p` to `ℤ_[p]` is `ZMod.cast`,
 which coerces `ZMod p` into artibrary rings.
 This is unfortunate, but a consequence of the fact that we allow `ZMod p`
 to coerce to rings of arbitrary characteristic, instead of only rings of characteristic `p`.
@@ -383,7 +381,7 @@ theorem appr_spec (n : ℕ) : ∀ x : ℤ_[p], x - appr x n ∈ Ideal.span {(p :
       rw [← this, ← Ideal.mem_span_singleton, ← maximalIdeal_eq_span_p]
       apply toZMod_spec
     obtain ⟨c, rfl⟩ : IsUnit c := by
-      -- TODO: write a can_lift instance for units
+      -- TODO: write a `CanLift` instance for units
       rw [Int.natAbs_eq_zero] at hc0
       rw [isUnit_iff, norm_eq_pow_val hc', hc0, neg_zero, zpow_zero]
     rw [DiscreteValuationRing.unit_mul_pow_congr_unit _ _ _ _ _ hc]
@@ -486,7 +484,7 @@ variable {R : Type _} [NonAssocSemiring R] (f : ∀ k : ℕ, R →+* ZMod (p ^ k
   (f_compat : ∀ (k1 k2) (hk : k1 ≤ k2), (ZMod.castHom (pow_dvd_pow p hk) _).comp (f k2) = f k1)
 
 /-- Given a family of ring homs `f : Π n : ℕ, R →+* ZMod (p ^ n)`,
-`nth_hom f r` is an integer-valued sequence
+`nthHom f r` is an integer-valued sequence
 whose `n`th value is the unique integer `k` such that `0 ≤ k < p ^ n`
 and `f n r = (k : ZMod (p ^ n))`.
 -/
@@ -519,7 +517,7 @@ theorem isCauSeq_nthHom (r : R) : IsCauSeq (padicNorm p) fun n => nthHom f r n :
   exact_mod_cast pow_dvd_nthHom_sub f_compat r k j hj
 #align padic_int.is_cau_seq_nth_hom PadicInt.isCauSeq_nthHom
 
-/-- `nth_hom_seq f_compat r` bundles `PadicInt.nthHom f r`
+/-- `nthHomSeq f_compat r` bundles `PadicInt.nthHom f r`
 as a Cauchy sequence of rationals with respect to the `p`-adic norm.
 The `n`th value of the sequence is `((f n r).val : ℚ)`.
 -/
@@ -570,7 +568,7 @@ theorem nthHomSeq_mul (r s : R) :
 #align padic_int.nth_hom_seq_mul PadicInt.nthHomSeq_mul
 
 /--
-`lim_nth_hom f_compat r` is the limit of a sequence `f` of compatible ring homs `R →+* ZMod (p^k)`.
+`limNthHom f_compat r` is the limit of a sequence `f` of compatible ring homs `R →+* ZMod (p^k)`.
 This is itself a ring hom: see `PadicInt.lift`.
 -/
 def limNthHom (r : R) : ℤ_[p] :=
feat: port NumberTheory.Padics.RingHoms (#4395)

A coercion in a previous file (done by me) was wrong so I fix it in this PR

Co-authored-by: Chris Hughes <chrishughes24@gmail.com>

Dependencies 10 + 693

694 files ported (98.6%)
303952 lines ported (98.3%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file