number_theory.padics.padic_numbersMathlib.NumberTheory.Padics.PadicNumbers

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -437,7 +437,7 @@ theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.n
       by
       have hfg' : f + g ≈ g := by
         change lim_zero (f - 0) at hf
-        show lim_zero (f + g - g); · simpa only [sub_zero, add_sub_cancel] using hf
+        show lim_zero (f + g - g); · simpa only [sub_zero, add_sub_cancel_right] using hf
       have hcfg : (f + g).norm = g.norm := norm_equiv hfg'
       have hcl : f.norm = 0 := (norm_zero_iff f).2 hf
       have : max f.norm g.norm = g.norm := by rw [hcl] <;> exact max_eq_right (norm_nonneg _)
@@ -447,7 +447,7 @@ theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.n
         by
         have hfg' : f + g ≈ f := by
           change lim_zero (g - 0) at hg
-          show lim_zero (f + g - f); · simpa only [add_sub_cancel', sub_zero] using hg
+          show lim_zero (f + g - f); · simpa only [add_sub_cancel_left, sub_zero] using hg
         have hcfg : (f + g).norm = f.norm := norm_equiv hfg'
         have hcl : g.norm = 0 := (norm_zero_iff g).2 hg
         have : max f.norm g.norm = f.norm := by rw [hcl] <;> exact max_eq_left (norm_nonneg _)
@@ -498,14 +498,15 @@ theorem add_eq_max_of_ne {f g : PadicSeq p} (hfgne : f.norm ≠ g.norm) :
   have hfg : ¬f + g ≈ 0 := mt norm_eq_of_add_equiv_zero hfgne
   if hf : f ≈ 0 then by
     have : LimZero (f - 0) := hf
-    have : f + g ≈ g := show LimZero (f + g - g) by simpa only [sub_zero, add_sub_cancel]
+    have : f + g ≈ g := show LimZero (f + g - g) by simpa only [sub_zero, add_sub_cancel_right]
     have h1 : (f + g).norm = g.norm := norm_equiv this
     have h2 : f.norm = 0 := (norm_zero_iff _).2 hf
     rw [h1, h2] <;> rw [max_eq_right (norm_nonneg _)]
   else
     if hg : g ≈ 0 then by
       have : LimZero (g - 0) := hg
-      have : f + g ≈ f := show LimZero (f + g - f) by rw [add_sub_cancel'] <;> simpa only [sub_zero]
+      have : f + g ≈ f :=
+        show LimZero (f + g - f) by rw [add_sub_cancel_left] <;> simpa only [sub_zero]
       have h1 : (f + g).norm = f.norm := norm_equiv this
       have h2 : g.norm = 0 := (norm_zero_iff _).2 hg
       rw [h1, h2] <;> rw [max_eq_left (norm_nonneg _)]
@@ -601,7 +602,7 @@ theorem coe_inj {q r : ℚ} : (↑q : ℚ_[p]) = ↑r ↔ q = r :=
 -/
 
 instance : CharZero ℚ_[p] :=
-  ⟨fun m n => by rw [← Rat.cast_coe_nat]; norm_cast; exact id⟩
+  ⟨fun m n => by rw [← Rat.cast_natCast]; norm_cast; exact id⟩
 
 #print Padic.coe_add /-
 @[norm_cast]
@@ -750,7 +751,7 @@ open PadicSeq Padic
 
 variable {p : ℕ} [Fact p.Prime] (f : CauSeq _ (@padicNormE p _))
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (m n «expr ≥ » N) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (m n «expr ≥ » N) -/
 #print Padic.rat_dense' /-
 theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicNormE (q - r) < ε :=
   Quotient.inductionOn q fun q' =>
@@ -962,9 +963,9 @@ theorem norm_p : ‖(p : ℚ_[p])‖ = p⁻¹ :=
   by
   have p₀ : p ≠ 0 := hp.1.NeZero
   have p₁ : p ≠ 1 := hp.1.ne_one
-  rw [← @Rat.cast_coe_nat ℝ _ p]
-  rw [← @Rat.cast_coe_nat ℚ_[p] _ p]
-  simp [p₀, p₁, norm, padicNorm, padicValRat, padicValInt, zpow_neg, -Rat.cast_coe_nat]
+  rw [← @Rat.cast_natCast ℝ _ p]
+  rw [← @Rat.cast_natCast ℚ_[p] _ p]
+  simp [p₀, p₁, norm, padicNorm, padicValRat, padicValInt, zpow_neg, -Rat.cast_natCast]
 #align padic_norm_e.norm_p padicNormE.norm_p
 -/
 
@@ -986,7 +987,7 @@ theorem norm_p_zpow (n : ℤ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n) := by
 
 #print padicNormE.norm_p_pow /-
 @[simp]
-theorem norm_p_pow (n : ℕ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n : ℤ) := by rw [← norm_p_zpow, zpow_coe_nat]
+theorem norm_p_pow (n : ℕ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n : ℤ) := by rw [← norm_p_zpow, zpow_natCast]
 #align padic_norm_e.norm_p_pow padicNormE.norm_p_pow
 -/
 
@@ -1049,7 +1050,7 @@ theorem norm_rat_le_one : ∀ {q : ℚ} (hq : ¬p ∣ q.den), ‖(q : ℚ_[p])
       rw [padicNorm.eq_zpow_of_nonzero hnz', padicValRat, neg_sub,
         padicValNat.eq_zero_of_not_dvd hq]
       norm_cast
-      rw [zero_sub, zpow_neg, zpow_coe_nat]
+      rw [zero_sub, zpow_neg, zpow_natCast]
       apply inv_le_one
       · norm_cast
         apply one_le_pow
@@ -1133,7 +1134,7 @@ namespace Padic
 
 variable {p : ℕ} [hp : Fact p.Prime]
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:339:40: warning: unsupported option eqn_compiler.zeta -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:340:40: warning: unsupported option eqn_compiler.zeta -/
 set_option eqn_compiler.zeta true
 
 #print Padic.complete /-
@@ -1228,7 +1229,7 @@ theorem norm_eq_pow_val {x : ℚ_[p]} : x ≠ 0 → ‖x‖ = p ^ (-x.Valuation)
   change (PadicSeq.norm _ : ℝ) = (p : ℝ) ^ (-PadicSeq.valuation _)
   rw [PadicSeq.norm_eq_pow_val]
   change ↑((p : ℚ) ^ (-PadicSeq.valuation f)) = (p : ℝ) ^ (-PadicSeq.valuation f)
-  · rw [Rat.cast_zpow, Rat.cast_coe_nat]
+  · rw [Rat.cast_zpow, Rat.cast_natCast]
   · apply CauSeq.not_limZero_of_not_congr_zero
     contrapose! hf
     apply Quotient.sound
Diff
@@ -101,10 +101,10 @@ theorem stationary {f : CauSeq ℚ (padicNorm p)} (hf : ¬f ≈ 0) :
     have : padicNorm p (f n - f m) < max (padicNorm p (f n)) (padicNorm p (f m)) :=
       lt_max_iff.2 (Or.inl this)
     by_contra hne
-    rw [← padicNorm.neg (f m)] at hne 
+    rw [← padicNorm.neg (f m)] at hne
     have hnam := add_eq_max_of_ne hne
-    rw [padicNorm.neg, max_comm] at hnam 
-    rw [← hnam, sub_eq_add_neg, add_comm] at this 
+    rw [padicNorm.neg, max_comm] at hnam
+    rw [← hnam, sub_eq_add_neg, add_comm] at this
     apply _root_.lt_irrefl _ this⟩
 #align padic_seq.stationary PadicSeq.stationary
 -/
@@ -138,7 +138,7 @@ theorem norm_zero_iff (f : PadicSeq p) : f.norm = 0 ↔ f ≈ 0 :=
   constructor
   · intro h
     by_contra hf
-    unfold norm at h ; split_ifs at h 
+    unfold norm at h; split_ifs at h
     apply hf
     intro ε hε
     exists stationary_point hf
@@ -384,12 +384,12 @@ private theorem norm_eq_of_equiv_aux {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : 
   let i := max N (max (stationary_point hf) (stationary_point hg))
   have hi : N ≤ i := le_max_left _ _
   have hN' := hN _ hi
-  padic_index_simp [N, hf, hg] at hN' h hlt 
-  have hpne : padicNorm p (f i) ≠ padicNorm p (-g i) := by rwa [← padicNorm.neg (g i)] at h 
+  padic_index_simp [N, hf, hg] at hN' h hlt
+  have hpne : padicNorm p (f i) ≠ padicNorm p (-g i) := by rwa [← padicNorm.neg (g i)] at h
   let hpnem := add_eq_max_of_ne hpne
   have hpeq : padicNorm p ((f - g) i) = max (padicNorm p (f i)) (padicNorm p (g i)) := by
-    rwa [padicNorm.neg] at hpnem 
-  rw [hpeq, max_eq_left_of_lt hlt] at hN' 
+    rwa [padicNorm.neg] at hpnem
+  rw [hpeq, max_eq_left_of_lt hlt] at hN'
   have : padicNorm p (f i) < padicNorm p (f i) := by apply lt_of_lt_of_le hN'; apply sub_le_self;
     apply padicNorm.nonneg
   exact lt_irrefl _ this
@@ -436,7 +436,7 @@ theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.n
     if hf : f ≈ 0 then
       by
       have hfg' : f + g ≈ g := by
-        change lim_zero (f - 0) at hf 
+        change lim_zero (f - 0) at hf
         show lim_zero (f + g - g); · simpa only [sub_zero, add_sub_cancel] using hf
       have hcfg : (f + g).norm = g.norm := norm_equiv hfg'
       have hcl : f.norm = 0 := (norm_zero_iff f).2 hf
@@ -446,7 +446,7 @@ theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.n
       if hg : g ≈ 0 then
         by
         have hfg' : f + g ≈ f := by
-          change lim_zero (g - 0) at hg 
+          change lim_zero (g - 0) at hg
           show lim_zero (f + g - f); · simpa only [add_sub_cancel', sub_zero] using hg
         have hcfg : (f + g).norm = f.norm := norm_equiv hfg'
         have hcl : g.norm = 0 := (norm_zero_iff g).2 hg
@@ -695,8 +695,8 @@ theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) : ∃ N, ∀ i ≥ N, pa
   cases' cauchy₂ f hε with N hN
   rcases h N with ⟨i, hi, hge⟩
   have hne : ¬f - const (padicNorm p) (f i) ≈ 0 := by intro h;
-    unfold PadicSeq.norm at hge  <;> split_ifs at hge ; exact not_lt_of_ge hge hε
-  unfold PadicSeq.norm at hge  <;> split_ifs at hge 
+    unfold PadicSeq.norm at hge <;> split_ifs at hge; exact not_lt_of_ge hge hε
+  unfold PadicSeq.norm at hge <;> split_ifs at hge
   apply not_le_of_gt _ hge
   cases' em (N ≤ stationary_point hne) with hgen hngen
   · apply hN _ hgen _ hi
@@ -766,7 +766,7 @@ theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicN
         have := stationary_point_spec hne'
         cases' Decidable.em (stationary_point hne' ≤ N) with hle hle
         · have := Eq.symm (this le_rfl hle)
-          simp only [const_apply, sub_apply, padicNorm.zero, sub_self] at this 
+          simp only [const_apply, sub_apply, padicNorm.zero, sub_self] at this
           simpa only [this]
         · exact hN _ (lt_of_not_ge hle).le _ le_rfl⟩
 #align padic.rat_dense' Padic.rat_dense'
@@ -1080,7 +1080,7 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
     split_ifs with H
     · exfalso
       apply h
-      norm_cast at H 
+      norm_cast at H
       rw [H]
       apply dvd_zero
     · norm_cast at H ⊢
@@ -1144,13 +1144,13 @@ instance complete : CauSeq.IsComplete ℚ_[p] norm :=
     by
     intro ε hε
     let h := is_cau f ε (by exact_mod_cast hε)
-    unfold norm at h 
+    unfold norm at h
     apply_mod_cast h
   cases' Padic.complete' ⟨f, cau_seq_norm_e⟩ with q hq
   exists q
   intro ε hε
   cases' exists_rat_btwn hε with ε' hε'
-  norm_cast at hε' 
+  norm_cast at hε'
   cases' hq ε' hε'.1 with N hN; exists N
   intro i hi; let h := hN i hi
   unfold norm
@@ -1213,7 +1213,7 @@ theorem valuation_zero : valuation (0 : ℚ_[p]) = 0 :=
 theorem valuation_one : valuation (1 : ℚ_[p]) = 0 :=
   by
   change dite (CauSeq.const (padicNorm p) 1 ≈ _) _ _ = _
-  have h : ¬CauSeq.const (padicNorm p) 1 ≈ 0 := by intro H; erw [const_equiv p] at H ;
+  have h : ¬CauSeq.const (padicNorm p) 1 ≈ 0 := by intro H; erw [const_equiv p] at H;
     exact one_ne_zero H
   rw [dif_neg h]
   simp
@@ -1262,7 +1262,7 @@ theorem valuation_map_add {x y : ℚ_[p]} (hxy : x + y ≠ 0) :
         rw [← Nat.cast_one, Nat.cast_lt]
         exact Nat.Prime.one_lt hp.elim
       rwa [norm_eq_pow_val hx, norm_eq_pow_val hy, norm_eq_pow_val hxy,
-        zpow_le_max_iff_min_le hp_one] at h_norm 
+        zpow_le_max_iff_min_le hp_one] at h_norm
 #align padic.valuation_map_add Padic.valuation_map_add
 -/
 
@@ -1280,7 +1280,7 @@ theorem valuation_map_mul {x y : ℚ_[p]} (hx : x ≠ 0) (hy : y ≠ 0) :
     rw [← Nat.cast_zero, Nat.cast_lt]
     exact Nat.Prime.pos hp.elim
   rw [norm_eq_pow_val hx, norm_eq_pow_val hy, norm_eq_pow_val (mul_ne_zero hx hy), ←
-    zpow_add₀ (ne_of_gt hp_pos), zpow_inj hp_pos hp_ne_one, ← neg_add, neg_inj] at h_norm 
+    zpow_add₀ (ne_of_gt hp_pos), zpow_inj hp_pos hp_ne_one, ← neg_add, neg_inj] at h_norm
   exact h_norm
 #align padic.valuation_map_mul Padic.valuation_map_mul
 -/
Diff
@@ -986,7 +986,7 @@ theorem norm_p_zpow (n : ℤ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n) := by
 
 #print padicNormE.norm_p_pow /-
 @[simp]
-theorem norm_p_pow (n : ℕ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n : ℤ) := by rw [← norm_p_zpow, zpow_ofNat]
+theorem norm_p_pow (n : ℕ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n : ℤ) := by rw [← norm_p_zpow, zpow_coe_nat]
 #align padic_norm_e.norm_p_pow padicNormE.norm_p_pow
 -/
 
@@ -1049,7 +1049,7 @@ theorem norm_rat_le_one : ∀ {q : ℚ} (hq : ¬p ∣ q.den), ‖(q : ℚ_[p])
       rw [padicNorm.eq_zpow_of_nonzero hnz', padicValRat, neg_sub,
         padicValNat.eq_zero_of_not_dvd hq]
       norm_cast
-      rw [zero_sub, zpow_neg, zpow_ofNat]
+      rw [zero_sub, zpow_neg, zpow_coe_nat]
       apply inv_le_one
       · norm_cast
         apply one_le_pow
Diff
@@ -691,7 +691,7 @@ theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) : ∃ N, ∀ i ≥ N, pa
   by
   dsimp [padicNormE]
   change ∃ N, ∀ i ≥ N, (f - const _ (f i)).norm < ε
-  by_contra' h
+  by_contra! h
   cases' cauchy₂ f hε with N hN
   rcases h N with ⟨i, hi, hge⟩
   have hne : ¬f - const (padicNorm p) (f i) ≈ 0 := by intro h;
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2018 Robert Y. Lewis. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Robert Y. Lewis
 -/
-import Mathbin.NumberTheory.Padics.PadicNorm
-import Mathbin.Analysis.Normed.Field.Basic
+import NumberTheory.Padics.PadicNorm
+import Analysis.Normed.Field.Basic
 
 #align_import number_theory.padics.padic_numbers from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
 
@@ -750,7 +750,7 @@ open PadicSeq Padic
 
 variable {p : ℕ} [Fact p.Prime] (f : CauSeq _ (@padicNormE p _))
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (m n «expr ≥ » N) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (m n «expr ≥ » N) -/
 #print Padic.rat_dense' /-
 theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicNormE (q - r) < ε :=
   Quotient.inductionOn q fun q' =>
@@ -1133,7 +1133,7 @@ namespace Padic
 
 variable {p : ℕ} [hp : Fact p.Prime]
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:334:40: warning: unsupported option eqn_compiler.zeta -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:339:40: warning: unsupported option eqn_compiler.zeta -/
 set_option eqn_compiler.zeta true
 
 #print Padic.complete /-
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2018 Robert Y. Lewis. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Robert Y. Lewis
-
-! This file was ported from Lean 3 source module number_theory.padics.padic_numbers
-! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.NumberTheory.Padics.PadicNorm
 import Mathbin.Analysis.Normed.Field.Basic
 
+#align_import number_theory.padics.padic_numbers from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
+
 /-!
 # p-adic numbers
 
@@ -753,7 +750,7 @@ open PadicSeq Padic
 
 variable {p : ℕ} [Fact p.Prime] (f : CauSeq _ (@padicNormE p _))
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (m n «expr ≥ » N) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (m n «expr ≥ » N) -/
 #print Padic.rat_dense' /-
 theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicNormE (q - r) < ε :=
   Quotient.inductionOn q fun q' =>
Diff
@@ -87,6 +87,7 @@ section
 
 variable {p : ℕ} [Fact p.Prime]
 
+#print PadicSeq.stationary /-
 /-- The `p`-adic norm of the entries of a nonzero Cauchy sequence of rationals is eventually
 constant. -/
 theorem stationary {f : CauSeq ℚ (padicNorm p)} (hf : ¬f ≈ 0) :
@@ -109,17 +110,22 @@ theorem stationary {f : CauSeq ℚ (padicNorm p)} (hf : ¬f ≈ 0) :
     rw [← hnam, sub_eq_add_neg, add_comm] at this 
     apply _root_.lt_irrefl _ this⟩
 #align padic_seq.stationary PadicSeq.stationary
+-/
 
+#print PadicSeq.stationaryPoint /-
 /-- For all `n ≥ stationary_point f hf`, the `p`-adic norm of `f n` is the same. -/
 def stationaryPoint {f : PadicSeq p} (hf : ¬f ≈ 0) : ℕ :=
   Classical.choose <| stationary hf
 #align padic_seq.stationary_point PadicSeq.stationaryPoint
+-/
 
+#print PadicSeq.stationaryPoint_spec /-
 theorem stationaryPoint_spec {f : PadicSeq p} (hf : ¬f ≈ 0) :
     ∀ {m n},
       stationaryPoint hf ≤ m → stationaryPoint hf ≤ n → padicNorm p (f n) = padicNorm p (f m) :=
   Classical.choose_spec <| stationary hf
 #align padic_seq.stationary_point_spec PadicSeq.stationaryPoint_spec
+-/
 
 #print PadicSeq.norm /-
 /-- Since the norm of the entries of a Cauchy sequence is eventually stationary,
@@ -129,6 +135,7 @@ def norm (f : PadicSeq p) : ℚ :=
 #align padic_seq.norm PadicSeq.norm
 -/
 
+#print PadicSeq.norm_zero_iff /-
 theorem norm_zero_iff (f : PadicSeq p) : f.norm = 0 ↔ f ≈ 0 :=
   by
   constructor
@@ -144,6 +151,7 @@ theorem norm_zero_iff (f : PadicSeq p) : f.norm = 0 ↔ f ≈ 0 :=
   · intro h
     simp [norm, h]
 #align padic_seq.norm_zero_iff PadicSeq.norm_zero_iff
+-/
 
 end
 
@@ -153,35 +161,48 @@ open CauSeq
 
 variable {p : ℕ} [Fact p.Prime]
 
+#print PadicSeq.equiv_zero_of_val_eq_of_equiv_zero /-
 theorem equiv_zero_of_val_eq_of_equiv_zero {f g : PadicSeq p}
     (h : ∀ k, padicNorm p (f k) = padicNorm p (g k)) (hf : f ≈ 0) : g ≈ 0 := fun ε hε =>
   let ⟨i, hi⟩ := hf _ hε
   ⟨i, fun j hj => by simpa [h] using hi _ hj⟩
 #align padic_seq.equiv_zero_of_val_eq_of_equiv_zero PadicSeq.equiv_zero_of_val_eq_of_equiv_zero
+-/
 
+#print PadicSeq.norm_nonzero_of_not_equiv_zero /-
 theorem norm_nonzero_of_not_equiv_zero {f : PadicSeq p} (hf : ¬f ≈ 0) : f.norm ≠ 0 :=
   hf ∘ f.norm_zero_iff.1
 #align padic_seq.norm_nonzero_of_not_equiv_zero PadicSeq.norm_nonzero_of_not_equiv_zero
+-/
 
+#print PadicSeq.norm_eq_norm_app_of_nonzero /-
 theorem norm_eq_norm_app_of_nonzero {f : PadicSeq p} (hf : ¬f ≈ 0) :
     ∃ k, f.norm = padicNorm p k ∧ k ≠ 0 :=
   have heq : f.norm = padicNorm p (f <| stationaryPoint hf) := by simp [norm, hf]
   ⟨f <| stationaryPoint hf, HEq, fun h =>
     norm_nonzero_of_not_equiv_zero hf (by simpa [h] using HEq)⟩
 #align padic_seq.norm_eq_norm_app_of_nonzero PadicSeq.norm_eq_norm_app_of_nonzero
+-/
 
+#print PadicSeq.not_limZero_const_of_nonzero /-
 theorem not_limZero_const_of_nonzero {q : ℚ} (hq : q ≠ 0) : ¬LimZero (const (padicNorm p) q) :=
   fun h' => hq <| const_limZero.1 h'
 #align padic_seq.not_lim_zero_const_of_nonzero PadicSeq.not_limZero_const_of_nonzero
+-/
 
+#print PadicSeq.not_equiv_zero_const_of_nonzero /-
 theorem not_equiv_zero_const_of_nonzero {q : ℚ} (hq : q ≠ 0) : ¬const (padicNorm p) q ≈ 0 :=
   fun h : LimZero (const (padicNorm p) q - 0) => not_limZero_const_of_nonzero hq <| by simpa using h
 #align padic_seq.not_equiv_zero_const_of_nonzero PadicSeq.not_equiv_zero_const_of_nonzero
+-/
 
+#print PadicSeq.norm_nonneg /-
 theorem norm_nonneg (f : PadicSeq p) : 0 ≤ f.norm :=
   if hf : f ≈ 0 then by simp [hf, norm] else by simp [norm, hf, padicNorm.nonneg]
 #align padic_seq.norm_nonneg PadicSeq.norm_nonneg
+-/
 
+#print PadicSeq.lift_index_left_left /-
 /-- An auxiliary lemma for manipulating sequence indices. -/
 theorem lift_index_left_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v2 v3 : ℕ) :
     padicNorm p (f (stationaryPoint hf)) = padicNorm p (f (max (stationaryPoint hf) (max v2 v3))) :=
@@ -190,7 +211,9 @@ theorem lift_index_left_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v2 v3 : ℕ) :
   · apply le_max_left
   · exact le_rfl
 #align padic_seq.lift_index_left_left PadicSeq.lift_index_left_left
+-/
 
+#print PadicSeq.lift_index_left /-
 /-- An auxiliary lemma for manipulating sequence indices. -/
 theorem lift_index_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v1 v3 : ℕ) :
     padicNorm p (f (stationaryPoint hf)) = padicNorm p (f (max v1 (max (stationaryPoint hf) v3))) :=
@@ -201,7 +224,9 @@ theorem lift_index_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v1 v3 : ℕ) :
     · apply le_max_right
   · exact le_rfl
 #align padic_seq.lift_index_left PadicSeq.lift_index_left
+-/
 
+#print PadicSeq.lift_index_right /-
 /-- An auxiliary lemma for manipulating sequence indices. -/
 theorem lift_index_right {f : PadicSeq p} (hf : ¬f ≈ 0) (v1 v2 : ℕ) :
     padicNorm p (f (stationaryPoint hf)) = padicNorm p (f (max v1 (max v2 (stationaryPoint hf)))) :=
@@ -212,6 +237,7 @@ theorem lift_index_right {f : PadicSeq p} (hf : ¬f ≈ 0) (v1 v2 : ℕ) :
     · apply le_max_right
   · exact le_rfl
 #align padic_seq.lift_index_right PadicSeq.lift_index_right
+-/
 
 end Embedding
 
@@ -232,6 +258,7 @@ def valuation (f : PadicSeq p) : ℤ :=
 #align padic_seq.valuation PadicSeq.valuation
 -/
 
+#print PadicSeq.norm_eq_pow_val /-
 theorem norm_eq_pow_val {f : PadicSeq p} (hf : ¬f ≈ 0) : f.norm = p ^ (-f.Valuation : ℤ) :=
   by
   rw [norm, Valuation, dif_neg hf, dif_neg hf, padicNorm, if_neg]
@@ -243,7 +270,9 @@ theorem norm_eq_pow_val {f : PadicSeq p} (hf : ¬f ≈ 0) : f.norm = p ^ (-f.Val
   rw [stationary_point_spec hf le_rfl hn]
   simpa [H] using hε
 #align padic_seq.norm_eq_pow_val PadicSeq.norm_eq_pow_val
+-/
 
+#print PadicSeq.val_eq_iff_norm_eq /-
 theorem val_eq_iff_norm_eq {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : ¬g ≈ 0) :
     f.Valuation = g.Valuation ↔ f.norm = g.norm :=
   by
@@ -251,6 +280,7 @@ theorem val_eq_iff_norm_eq {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : ¬g ≈ 0)
   · exact_mod_cast (Fact.out p.prime).Pos
   · exact_mod_cast (Fact.out p.prime).ne_one
 #align padic_seq.val_eq_iff_norm_eq PadicSeq.val_eq_iff_norm_eq
+-/
 
 end Valuation
 
@@ -289,8 +319,7 @@ open CauSeq
 
 variable {p : ℕ} [hp : Fact p.Prime]
 
-include hp
-
+#print PadicSeq.norm_mul /-
 theorem norm_mul (f g : PadicSeq p) : (f * g).norm = f.norm * g.norm :=
   if hf : f ≈ 0 then by
     have hg : f * g ≈ 0 := mul_equiv_zero' _ hf
@@ -306,14 +335,19 @@ theorem norm_mul (f g : PadicSeq p) : (f * g).norm = f.norm * g.norm :=
       padic_index_simp [hfg, hf, hg]
       apply padicNorm.mul
 #align padic_seq.norm_mul PadicSeq.norm_mul
+-/
 
+#print PadicSeq.eq_zero_iff_equiv_zero /-
 theorem eq_zero_iff_equiv_zero (f : PadicSeq p) : mk f = 0 ↔ f ≈ 0 :=
   mk_eq
 #align padic_seq.eq_zero_iff_equiv_zero PadicSeq.eq_zero_iff_equiv_zero
+-/
 
+#print PadicSeq.ne_zero_iff_nequiv_zero /-
 theorem ne_zero_iff_nequiv_zero (f : PadicSeq p) : mk f ≠ 0 ↔ ¬f ≈ 0 :=
   not_iff_not.2 (eq_zero_iff_equiv_zero _)
 #align padic_seq.ne_zero_iff_nequiv_zero PadicSeq.ne_zero_iff_nequiv_zero
+-/
 
 #print PadicSeq.norm_const /-
 theorem norm_const (q : ℚ) : norm (const (padicNorm p) q) = padicNorm p q :=
@@ -327,17 +361,21 @@ theorem norm_const (q : ℚ) : norm (const (padicNorm p) q) = padicNorm p q :=
 #align padic_seq.norm_const PadicSeq.norm_const
 -/
 
+#print PadicSeq.norm_values_discrete /-
 theorem norm_values_discrete (a : PadicSeq p) (ha : ¬a ≈ 0) : ∃ z : ℤ, a.norm = p ^ (-z) :=
   by
   let ⟨k, hk, hk'⟩ := norm_eq_norm_app_of_nonzero ha
   simpa [hk] using padicNorm.values_discrete hk'
 #align padic_seq.norm_values_discrete PadicSeq.norm_values_discrete
+-/
 
+#print PadicSeq.norm_one /-
 theorem norm_one : norm (1 : PadicSeq p) = 1 :=
   by
   have h1 : ¬(1 : PadicSeq p) ≈ 0 := one_not_equiv_zero _
   simp [h1, norm, hp.1.one_lt]
 #align padic_seq.norm_one PadicSeq.norm_one
+-/
 
 private theorem norm_eq_of_equiv_aux {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : ¬g ≈ 0) (hfg : f ≈ g)
     (h : padicNorm p (f (stationaryPoint hf)) ≠ padicNorm p (g (stationaryPoint hg)))
@@ -373,6 +411,7 @@ private theorem norm_eq_of_equiv {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : ¬g 
     apply le_of_not_gt hnlt
     apply h
 
+#print PadicSeq.norm_equiv /-
 theorem norm_equiv {f g : PadicSeq p} (hfg : f ≈ g) : f.norm = g.norm :=
   if hf : f ≈ 0 then by
     have hg : g ≈ 0 := Setoid.trans (Setoid.symm hfg) hf
@@ -381,6 +420,7 @@ theorem norm_equiv {f g : PadicSeq p} (hfg : f ≈ g) : f.norm = g.norm :=
     have hg : ¬g ≈ 0 := hf ∘ Setoid.trans hfg
     unfold norm <;> split_ifs <;> exact norm_eq_of_equiv hf hg hfg
 #align padic_seq.norm_equiv PadicSeq.norm_equiv
+-/
 
 private theorem norm_nonarchimedean_aux {f g : PadicSeq p} (hfg : ¬f + g ≈ 0) (hf : ¬f ≈ 0)
     (hg : ¬g ≈ 0) : (f + g).norm ≤ max f.norm g.norm :=
@@ -389,6 +429,7 @@ private theorem norm_nonarchimedean_aux {f g : PadicSeq p} (hfg : ¬f + g ≈ 0)
   padic_index_simp [hfg, hf, hg]
   apply padicNorm.nonarchimedean
 
+#print PadicSeq.norm_nonarchimedean /-
 theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.norm :=
   if hfg : f + g ≈ 0 then
     by
@@ -416,6 +457,7 @@ theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.n
         rw [this, hcfg]
       else norm_nonarchimedean_aux hfg hf hg
 #align padic_seq.norm_nonarchimedean PadicSeq.norm_nonarchimedean
+-/
 
 #print PadicSeq.norm_eq /-
 theorem norm_eq {f g : PadicSeq p} (h : ∀ k, padicNorm p (f k) = padicNorm p (g k)) :
@@ -437,10 +479,13 @@ theorem norm_eq {f g : PadicSeq p} (h : ∀ k, padicNorm p (f k) = padicNorm p (
 #align padic_seq.norm_eq PadicSeq.norm_eq
 -/
 
+#print PadicSeq.norm_neg /-
 theorem norm_neg (a : PadicSeq p) : (-a).norm = a.norm :=
   norm_eq <| by simp
 #align padic_seq.norm_neg PadicSeq.norm_neg
+-/
 
+#print PadicSeq.norm_eq_of_add_equiv_zero /-
 theorem norm_eq_of_add_equiv_zero {f g : PadicSeq p} (h : f + g ≈ 0) : f.norm = g.norm :=
   by
   have : LimZero (f + g - 0) := h
@@ -448,7 +493,9 @@ theorem norm_eq_of_add_equiv_zero {f g : PadicSeq p} (h : f + g ≈ 0) : f.norm
   have : f.norm = (-g).norm := norm_equiv this
   simpa only [norm_neg] using this
 #align padic_seq.norm_eq_of_add_equiv_zero PadicSeq.norm_eq_of_add_equiv_zero
+-/
 
+#print PadicSeq.add_eq_max_of_ne /-
 theorem add_eq_max_of_ne {f g : PadicSeq p} (hfgne : f.norm ≠ g.norm) :
     (f + g).norm = max f.norm g.norm :=
   have hfg : ¬f + g ≈ 0 := mt norm_eq_of_add_equiv_zero hfgne
@@ -470,6 +517,7 @@ theorem add_eq_max_of_ne {f g : PadicSeq p} (hfgne : f.norm ≠ g.norm) :
       padic_index_simp [hfg, hf, hg] at hfgne ⊢
       exact padicNorm.add_eq_max_of_ne hfgne
 #align padic_seq.add_eq_max_of_ne PadicSeq.add_eq_max_of_ne
+-/
 
 end Embedding
 
@@ -483,7 +531,6 @@ def Padic (p : ℕ) [Fact p.Prime] :=
 #align padic Padic
 -/
 
--- mathport name: «exprℚ_[ ]»
 notation "ℚ_[" p "]" => Padic p
 
 namespace Padic
@@ -530,66 +577,89 @@ def mk : PadicSeq p → ℚ_[p] :=
 
 variable (p)
 
+#print Padic.zero_def /-
 theorem zero_def : (0 : ℚ_[p]) = ⟦0⟧ :=
   rfl
 #align padic.zero_def Padic.zero_def
+-/
 
+#print Padic.mk_eq /-
 theorem mk_eq {f g : PadicSeq p} : mk f = mk g ↔ f ≈ g :=
   Quotient.eq'
 #align padic.mk_eq Padic.mk_eq
+-/
 
+#print Padic.const_equiv /-
 theorem const_equiv {q r : ℚ} : const (padicNorm p) q ≈ const (padicNorm p) r ↔ q = r :=
   ⟨fun heq => eq_of_sub_eq_zero <| const_limZero.1 HEq, fun heq => by
     rw [HEq] <;> apply Setoid.refl _⟩
 #align padic.const_equiv Padic.const_equiv
+-/
 
+#print Padic.coe_inj /-
 @[norm_cast]
 theorem coe_inj {q r : ℚ} : (↑q : ℚ_[p]) = ↑r ↔ q = r :=
   ⟨(const_equiv p).1 ∘ Quotient.eq'.1, fun h => by rw [h]⟩
 #align padic.coe_inj Padic.coe_inj
+-/
 
 instance : CharZero ℚ_[p] :=
   ⟨fun m n => by rw [← Rat.cast_coe_nat]; norm_cast; exact id⟩
 
+#print Padic.coe_add /-
 @[norm_cast]
 theorem coe_add : ∀ {x y : ℚ}, (↑(x + y) : ℚ_[p]) = ↑x + ↑y :=
   Rat.cast_add
 #align padic.coe_add Padic.coe_add
+-/
 
+#print Padic.coe_neg /-
 @[norm_cast]
 theorem coe_neg : ∀ {x : ℚ}, (↑(-x) : ℚ_[p]) = -↑x :=
   Rat.cast_neg
 #align padic.coe_neg Padic.coe_neg
+-/
 
+#print Padic.coe_mul /-
 @[norm_cast]
 theorem coe_mul : ∀ {x y : ℚ}, (↑(x * y) : ℚ_[p]) = ↑x * ↑y :=
   Rat.cast_mul
 #align padic.coe_mul Padic.coe_mul
+-/
 
+#print Padic.coe_sub /-
 @[norm_cast]
 theorem coe_sub : ∀ {x y : ℚ}, (↑(x - y) : ℚ_[p]) = ↑x - ↑y :=
   Rat.cast_sub
 #align padic.coe_sub Padic.coe_sub
+-/
 
+#print Padic.coe_div /-
 @[norm_cast]
 theorem coe_div : ∀ {x y : ℚ}, (↑(x / y) : ℚ_[p]) = ↑x / ↑y :=
   Rat.cast_div
 #align padic.coe_div Padic.coe_div
+-/
 
+#print Padic.coe_one /-
 @[norm_cast]
 theorem coe_one : (↑1 : ℚ_[p]) = 1 :=
   rfl
 #align padic.coe_one Padic.coe_one
+-/
 
+#print Padic.coe_zero /-
 @[norm_cast]
 theorem coe_zero : (↑0 : ℚ_[p]) = 0 :=
   rfl
 #align padic.coe_zero Padic.coe_zero
+-/
 
 end Completion
 
 end Padic
 
+#print padicNormE /-
 /-- The rational-valued `p`-adic norm on `ℚ_[p]` is lifted from the norm on Cauchy sequences. The
 canonical form of this function is the normed space instance, with notation `‖ ‖`. -/
 def padicNormE {p : ℕ} [hp : Fact p.Prime] : AbsoluteValue ℚ_[p] ℚ
@@ -609,6 +679,7 @@ def padicNormE {p : ℕ} [hp : Fact p.Prime] : AbsoluteValue ℚ_[p] ℚ
     refine' max_le_add_of_nonneg (Quotient.inductionOn q <| PadicSeq.norm_nonneg) _
     exact Quotient.inductionOn r <| PadicSeq.norm_nonneg
 #align padic_norm_e padicNormE
+-/
 
 namespace padicNormE
 
@@ -618,6 +689,7 @@ open PadicSeq
 
 variable {p : ℕ} [Fact p.Prime]
 
+#print padicNormE.defn /-
 theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) : ∃ N, ∀ i ≥ N, padicNormE (⟦f⟧ - f i) < ε :=
   by
   dsimp [padicNormE]
@@ -635,30 +707,39 @@ theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) : ∃ N, ∀ i ≥ N, pa
     rw [← this]
     exact hN _ le_rfl _ hi
 #align padic_norm_e.defn padicNormE.defn
+-/
 
+#print padicNormE.nonarchimedean' /-
 /-- Theorems about `padic_norm_e` are named with a `'` so the names do not conflict with the
 equivalent theorems about `norm` (`‖ ‖`). -/
 theorem nonarchimedean' (q r : ℚ_[p]) : padicNormE (q + r) ≤ max (padicNormE q) (padicNormE r) :=
   Quotient.induction_on₂ q r <| norm_nonarchimedean
 #align padic_norm_e.nonarchimedean' padicNormE.nonarchimedean'
+-/
 
+#print padicNormE.add_eq_max_of_ne' /-
 /-- Theorems about `padic_norm_e` are named with a `'` so the names do not conflict with the
 equivalent theorems about `norm` (`‖ ‖`). -/
 theorem add_eq_max_of_ne' {q r : ℚ_[p]} :
     padicNormE q ≠ padicNormE r → padicNormE (q + r) = max (padicNormE q) (padicNormE r) :=
   Quotient.induction_on₂ q r fun _ _ => PadicSeq.add_eq_max_of_ne
 #align padic_norm_e.add_eq_max_of_ne' padicNormE.add_eq_max_of_ne'
+-/
 
+#print padicNormE.eq_padic_norm' /-
 @[simp]
 theorem eq_padic_norm' (q : ℚ) : padicNormE (q : ℚ_[p]) = padicNorm p q :=
   norm_const _
 #align padic_norm_e.eq_padic_norm' padicNormE.eq_padic_norm'
+-/
 
+#print padicNormE.image' /-
 protected theorem image' {q : ℚ_[p]} : q ≠ 0 → ∃ n : ℤ, padicNormE q = p ^ (-n) :=
   Quotient.inductionOn q fun f hf =>
     have : ¬f ≈ 0 := (ne_zero_iff_nequiv_zero f).1 hf
     norm_values_discrete f this
 #align padic_norm_e.image' padicNormE.image'
+-/
 
 end Embedding
 
@@ -673,6 +754,7 @@ open PadicSeq Padic
 variable {p : ℕ} [Fact p.Prime] (f : CauSeq _ (@padicNormE p _))
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (m n «expr ≥ » N) -/
+#print Padic.rat_dense' /-
 theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicNormE (q - r) < ε :=
   Quotient.inductionOn q fun q' =>
     have : ∃ N, ∀ (m) (_ : m ≥ N) (n) (_ : n ≥ N), padicNorm p (q' m - q' n) < ε := cauchy₂ _ hε
@@ -691,17 +773,21 @@ theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicN
           simpa only [this]
         · exact hN _ (lt_of_not_ge hle).le _ le_rfl⟩
 #align padic.rat_dense' Padic.rat_dense'
+-/
 
 open Classical
 
 private theorem div_nat_pos (n : ℕ) : 0 < 1 / (n + 1 : ℚ) :=
   div_pos zero_lt_one (by exact_mod_cast succ_pos _)
 
+#print Padic.limSeq /-
 /-- `lim_seq f`, for `f` a Cauchy sequence of `p`-adic numbers, is a sequence of rationals with the
 same limit point as `f`. -/
 def limSeq : ℕ → ℚ := fun n => Classical.choose (rat_dense' (f n) (div_nat_pos n))
 #align padic.lim_seq Padic.limSeq
+-/
 
+#print Padic.exi_rat_seq_conv /-
 theorem exi_rat_seq_conv {ε : ℚ} (hε : 0 < ε) :
     ∃ N, ∀ i ≥ N, padicNormE (f i - (limSeq f i : ℚ_[p])) < ε :=
   by
@@ -713,7 +799,9 @@ theorem exi_rat_seq_conv {ε : ℚ} (hε : 0 < ε) :
   · exact (div_le_iff hε).mp (le_trans (le_of_lt hN) (by exact_mod_cast hi))
   · apply le_of_lt; simpa
 #align padic.exi_rat_seq_conv Padic.exi_rat_seq_conv
+-/
 
+#print Padic.exi_rat_seq_conv_cauchy /-
 theorem exi_rat_seq_conv_cauchy : IsCauSeq (padicNorm p) (limSeq f) := fun ε hε =>
   by
   have hε3 : 0 < ε / 3 := div_pos hε (by norm_num)
@@ -745,6 +833,7 @@ theorem exi_rat_seq_conv_cauchy : IsCauSeq (padicNorm p) (limSeq f) := fun ε h
       · apply_mod_cast hN
         apply le_max_left
 #align padic.exi_rat_seq_conv_cauchy Padic.exi_rat_seq_conv_cauchy
+-/
 
 private def lim' : PadicSeq p :=
   ⟨_, exi_rat_seq_conv_cauchy f⟩
@@ -752,6 +841,7 @@ private def lim' : PadicSeq p :=
 private def lim : ℚ_[p] :=
   ⟦lim' f⟧
 
+#print Padic.complete' /-
 theorem complete' : ∃ q : ℚ_[p], ∀ ε > 0, ∃ N, ∀ i ≥ N, padicNormE (q - f i) < ε :=
   ⟨limUnder f, fun ε hε =>
     by
@@ -766,6 +856,7 @@ theorem complete' : ∃ q : ℚ_[p], ∀ ε > 0, ∃ N, ∀ i ≥ N, padicNormE
     · rw [padic_norm_e.map_sub]
       exact hN _ (le_of_max_le_left hi)⟩
 #align padic.complete' Padic.complete'
+-/
 
 end Complete
 
@@ -799,6 +890,7 @@ instance : NormedField ℚ_[p] :=
     norm_mul' := by simp [Norm.norm, map_mul]
     norm := norm }
 
+#print Padic.isAbsoluteValue /-
 instance isAbsoluteValue : IsAbsoluteValue fun a : ℚ_[p] => ‖a‖
     where
   abv_nonneg := norm_nonneg
@@ -806,12 +898,15 @@ instance isAbsoluteValue : IsAbsoluteValue fun a : ℚ_[p] => ‖a‖
   abv_add := norm_add_le
   abv_mul := by simp [Norm.norm, map_mul]
 #align padic.is_absolute_value Padic.isAbsoluteValue
+-/
 
+#print Padic.rat_dense /-
 theorem rat_dense (q : ℚ_[p]) {ε : ℝ} (hε : 0 < ε) : ∃ r : ℚ, ‖q - r‖ < ε :=
   let ⟨ε', hε'l, hε'r⟩ := exists_rat_btwn hε
   let ⟨r, hr⟩ := rat_dense' q (by simpa using hε'l)
   ⟨r, lt_trans (by simpa [Norm.norm] using hr) hε'r⟩
 #align padic.rat_dense Padic.rat_dense
+-/
 
 end NormedSpace
 
@@ -823,22 +918,27 @@ section NormedSpace
 
 variable {p : ℕ} [hp : Fact p.Prime]
 
-include hp
-
+#print padicNormE.mul /-
 @[simp]
 protected theorem mul (q r : ℚ_[p]) : ‖q * r‖ = ‖q‖ * ‖r‖ := by simp [Norm.norm, map_mul]
 #align padic_norm_e.mul padicNormE.mul
+-/
 
+#print padicNormE.is_norm /-
 protected theorem is_norm (q : ℚ_[p]) : ↑(padicNormE q) = ‖q‖ :=
   rfl
 #align padic_norm_e.is_norm padicNormE.is_norm
+-/
 
+#print padicNormE.nonarchimedean /-
 theorem nonarchimedean (q r : ℚ_[p]) : ‖q + r‖ ≤ max ‖q‖ ‖r‖ :=
   by
   unfold Norm.norm
   exact_mod_cast nonarchimedean' _ _
 #align padic_norm_e.nonarchimedean padicNormE.nonarchimedean
+-/
 
+#print padicNormE.add_eq_max_of_ne /-
 theorem add_eq_max_of_ne {q r : ℚ_[p]} (h : ‖q‖ ≠ ‖r‖) : ‖q + r‖ = max ‖q‖ ‖r‖ :=
   by
   unfold Norm.norm
@@ -848,14 +948,18 @@ theorem add_eq_max_of_ne {q r : ℚ_[p]} (h : ‖q‖ ≠ ‖r‖) : ‖q + r‖
   unfold Norm.norm
   exact_mod_cast h'
 #align padic_norm_e.add_eq_max_of_ne padicNormE.add_eq_max_of_ne
+-/
 
+#print padicNormE.eq_padicNorm /-
 @[simp]
 theorem eq_padicNorm (q : ℚ) : ‖(q : ℚ_[p])‖ = padicNorm p q :=
   by
   unfold Norm.norm
   rw [← padicNormE.eq_padic_norm']
 #align padic_norm_e.eq_padic_norm padicNormE.eq_padicNorm
+-/
 
+#print padicNormE.norm_p /-
 @[simp]
 theorem norm_p : ‖(p : ℚ_[p])‖ = p⁻¹ :=
   by
@@ -865,22 +969,29 @@ theorem norm_p : ‖(p : ℚ_[p])‖ = p⁻¹ :=
   rw [← @Rat.cast_coe_nat ℚ_[p] _ p]
   simp [p₀, p₁, norm, padicNorm, padicValRat, padicValInt, zpow_neg, -Rat.cast_coe_nat]
 #align padic_norm_e.norm_p padicNormE.norm_p
+-/
 
+#print padicNormE.norm_p_lt_one /-
 theorem norm_p_lt_one : ‖(p : ℚ_[p])‖ < 1 :=
   by
   rw [norm_p]
   apply inv_lt_one
   exact_mod_cast hp.1.one_lt
 #align padic_norm_e.norm_p_lt_one padicNormE.norm_p_lt_one
+-/
 
+#print padicNormE.norm_p_zpow /-
 @[simp]
 theorem norm_p_zpow (n : ℤ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n) := by
   rw [norm_zpow, norm_p, zpow_neg, inv_zpow]
 #align padic_norm_e.norm_p_zpow padicNormE.norm_p_zpow
+-/
 
+#print padicNormE.norm_p_pow /-
 @[simp]
 theorem norm_p_pow (n : ℕ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n : ℤ) := by rw [← norm_p_zpow, zpow_ofNat]
 #align padic_norm_e.norm_p_pow padicNormE.norm_p_pow
+-/
 
 instance : NontriviallyNormedField ℚ_[p] :=
   { Padic.normedField p with
@@ -889,19 +1000,23 @@ instance : NontriviallyNormedField ℚ_[p] :=
         rw [norm_inv, norm_p, inv_inv]
         exact_mod_cast hp.1.one_lt⟩ }
 
+#print padicNormE.image /-
 protected theorem image {q : ℚ_[p]} : q ≠ 0 → ∃ n : ℤ, ‖q‖ = ↑((p : ℚ) ^ (-n)) :=
   Quotient.inductionOn q fun f hf =>
     have : ¬f ≈ 0 := (PadicSeq.ne_zero_iff_nequiv_zero f).1 hf
     let ⟨n, hn⟩ := PadicSeq.norm_values_discrete f this
     ⟨n, congr_arg coe hn⟩
 #align padic_norm_e.image padicNormE.image
+-/
 
+#print padicNormE.is_rat /-
 protected theorem is_rat (q : ℚ_[p]) : ∃ q' : ℚ, ‖q‖ = q' :=
   if h : q = 0 then ⟨0, by simp [h]⟩
   else
     let ⟨n, hn⟩ := padicNormE.image h
     ⟨_, hn⟩
 #align padic_norm_e.is_rat padicNormE.is_rat
+-/
 
 #print padicNormE.ratNorm /-
 /-- `rat_norm q`, for a `p`-adic number `q` is the `p`-adic norm of `q`, as rational number.
@@ -912,10 +1027,13 @@ def ratNorm (q : ℚ_[p]) : ℚ :=
 #align padic_norm_e.rat_norm padicNormE.ratNorm
 -/
 
+#print padicNormE.eq_ratNorm /-
 theorem eq_ratNorm (q : ℚ_[p]) : ‖q‖ = ratNorm q :=
   Classical.choose_spec (padicNormE.is_rat q)
 #align padic_norm_e.eq_rat_norm padicNormE.eq_ratNorm
+-/
 
+#print padicNormE.norm_rat_le_one /-
 theorem norm_rat_le_one : ∀ {q : ℚ} (hq : ¬p ∣ q.den), ‖(q : ℚ_[p])‖ ≤ 1
   | ⟨n, d, hn, hd⟩ => fun hq : ¬p ∣ d =>
     if hnz : n = 0 then
@@ -940,12 +1058,16 @@ theorem norm_rat_le_one : ∀ {q : ℚ} (hq : ¬p ∣ q.den), ‖(q : ℚ_[p])
         apply one_le_pow
         exact hp.1.Pos
 #align padic_norm_e.norm_rat_le_one padicNormE.norm_rat_le_one
+-/
 
+#print padicNormE.norm_int_le_one /-
 theorem norm_int_le_one (z : ℤ) : ‖(z : ℚ_[p])‖ ≤ 1 :=
   suffices ‖((z : ℚ) : ℚ_[p])‖ ≤ 1 by simpa
   norm_rat_le_one <| by simp [hp.1.ne_one]
 #align padic_norm_e.norm_int_le_one padicNormE.norm_int_le_one
+-/
 
+#print padicNormE.norm_int_lt_one_iff_dvd /-
 theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣ k :=
   by
   constructor
@@ -980,7 +1102,9 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
       apply inv_lt_one
       exact_mod_cast hp.1.one_lt
 #align padic_norm_e.norm_int_lt_one_iff_dvd padicNormE.norm_int_lt_one_iff_dvd
+-/
 
+#print padicNormE.norm_int_le_pow_iff_dvd /-
 theorem norm_int_le_pow_iff_dvd (k : ℤ) (n : ℕ) : ‖(k : ℚ_[p])‖ ≤ ↑p ^ (-n : ℤ) ↔ ↑(p ^ n) ∣ k :=
   by
   have : (p : ℝ) ^ (-n : ℤ) = ↑(p ^ (-n : ℤ) : ℚ) := by simp
@@ -988,16 +1112,21 @@ theorem norm_int_le_pow_iff_dvd (k : ℤ) (n : ℕ) : ‖(k : ℚ_[p])‖ ≤ 
   norm_cast
   rw [← padicNorm.dvd_iff_norm_le]
 #align padic_norm_e.norm_int_le_pow_iff_dvd padicNormE.norm_int_le_pow_iff_dvd
+-/
 
+#print padicNormE.eq_of_norm_add_lt_right /-
 theorem eq_of_norm_add_lt_right {z1 z2 : ℚ_[p]} (h : ‖z1 + z2‖ < ‖z2‖) : ‖z1‖ = ‖z2‖ :=
   by_contradiction fun hne =>
     not_lt_of_ge (by rw [padicNormE.add_eq_max_of_ne hne] <;> apply le_max_right) h
 #align padic_norm_e.eq_of_norm_add_lt_right padicNormE.eq_of_norm_add_lt_right
+-/
 
+#print padicNormE.eq_of_norm_add_lt_left /-
 theorem eq_of_norm_add_lt_left {z1 z2 : ℚ_[p]} (h : ‖z1 + z2‖ < ‖z1‖) : ‖z1‖ = ‖z2‖ :=
   by_contradiction fun hne =>
     not_lt_of_ge (by rw [padicNormE.add_eq_max_of_ne hne] <;> apply le_max_left) h
 #align padic_norm_e.eq_of_norm_add_lt_left padicNormE.eq_of_norm_add_lt_left
+-/
 
 end NormedSpace
 
@@ -1007,11 +1136,10 @@ namespace Padic
 
 variable {p : ℕ} [hp : Fact p.Prime]
 
-include hp
-
 /- ./././Mathport/Syntax/Translate/Basic.lean:334:40: warning: unsupported option eqn_compiler.zeta -/
 set_option eqn_compiler.zeta true
 
+#print Padic.complete /-
 instance complete : CauSeq.IsComplete ℚ_[p] norm :=
   by
   constructor; intro f
@@ -1033,7 +1161,9 @@ instance complete : CauSeq.IsComplete ℚ_[p] norm :=
   refine' lt_trans _ hε'.2
   exact_mod_cast hN i hi
 #align padic.complete Padic.complete
+-/
 
+#print Padic.padicNormE_lim_le /-
 theorem padicNormE_lim_le {f : CauSeq ℚ_[p] norm} {a : ℝ} (ha : 0 < a) (hf : ∀ i, ‖f i‖ ≤ a) :
     ‖f.lim‖ ≤ a :=
   let ⟨N, hN⟩ := Setoid.symm (CauSeq.equiv_lim f) _ ha
@@ -1042,6 +1172,7 @@ theorem padicNormE_lim_le {f : CauSeq ℚ_[p] norm} {a : ℝ} (ha : 0 < a) (hf :
     _ ≤ max ‖f.lim - f N‖ ‖f N‖ := (padicNormE.nonarchimedean _ _)
     _ ≤ a := max_le (le_of_lt (hN _ le_rfl)) (hf _)
 #align padic.padic_norm_e_lim_le Padic.padicNormE_lim_le
+-/
 
 open Filter Set
 
@@ -1073,11 +1204,14 @@ def valuation : ℚ_[p] → ℤ :=
 #align padic.valuation Padic.valuation
 -/
 
+#print Padic.valuation_zero /-
 @[simp]
 theorem valuation_zero : valuation (0 : ℚ_[p]) = 0 :=
   dif_pos ((const_equiv p).2 rfl)
 #align padic.valuation_zero Padic.valuation_zero
+-/
 
+#print Padic.valuation_one /-
 @[simp]
 theorem valuation_one : valuation (1 : ℚ_[p]) = 0 :=
   by
@@ -1087,7 +1221,9 @@ theorem valuation_one : valuation (1 : ℚ_[p]) = 0 :=
   rw [dif_neg h]
   simp
 #align padic.valuation_one Padic.valuation_one
+-/
 
+#print Padic.norm_eq_pow_val /-
 theorem norm_eq_pow_val {x : ℚ_[p]} : x ≠ 0 → ‖x‖ = p ^ (-x.Valuation) :=
   by
   apply Quotient.inductionOn' x; clear x
@@ -1101,7 +1237,9 @@ theorem norm_eq_pow_val {x : ℚ_[p]} : x ≠ 0 → ‖x‖ = p ^ (-x.Valuation)
     apply Quotient.sound
     simpa using hf
 #align padic.norm_eq_pow_val Padic.norm_eq_pow_val
+-/
 
+#print Padic.valuation_p /-
 @[simp]
 theorem valuation_p : valuation (p : ℚ_[p]) = 1 :=
   by
@@ -1110,7 +1248,9 @@ theorem valuation_p : valuation (p : ℚ_[p]) = 1 :=
   · exact_mod_cast (Fact.out p.prime).NeZero
   · simp
 #align padic.valuation_p Padic.valuation_p
+-/
 
+#print Padic.valuation_map_add /-
 theorem valuation_map_add {x y : ℚ_[p]} (hxy : x + y ≠ 0) :
     min (valuation x) (valuation y) ≤ valuation (x + y) :=
   by
@@ -1127,7 +1267,9 @@ theorem valuation_map_add {x y : ℚ_[p]} (hxy : x + y ≠ 0) :
       rwa [norm_eq_pow_val hx, norm_eq_pow_val hy, norm_eq_pow_val hxy,
         zpow_le_max_iff_min_le hp_one] at h_norm 
 #align padic.valuation_map_add Padic.valuation_map_add
+-/
 
+#print Padic.valuation_map_mul /-
 @[simp]
 theorem valuation_map_mul {x y : ℚ_[p]} (hx : x ≠ 0) (hy : y ≠ 0) :
     valuation (x * y) = valuation x + valuation y :=
@@ -1144,6 +1286,7 @@ theorem valuation_map_mul {x y : ℚ_[p]} (hx : x ≠ 0) (hy : y ≠ 0) :
     zpow_add₀ (ne_of_gt hp_pos), zpow_inj hp_pos hp_ne_one, ← neg_add, neg_inj] at h_norm 
   exact h_norm
 #align padic.valuation_map_mul Padic.valuation_map_mul
+-/
 
 #print Padic.addValuationDef /-
 /-- The additive `p`-adic valuation on `ℚ_[p]`, with values in `with_top ℤ`. -/
@@ -1151,16 +1294,21 @@ def addValuationDef : ℚ_[p] → WithTop ℤ := fun x => if x = 0 then ⊤ else
 #align padic.add_valuation_def Padic.addValuationDef
 -/
 
+#print Padic.AddValuation.map_zero /-
 @[simp]
 theorem AddValuation.map_zero : addValuationDef (0 : ℚ_[p]) = ⊤ := by
   simp only [add_valuation_def, if_pos (Eq.refl _)]
 #align padic.add_valuation.map_zero Padic.AddValuation.map_zero
+-/
 
+#print Padic.AddValuation.map_one /-
 @[simp]
 theorem AddValuation.map_one : addValuationDef (1 : ℚ_[p]) = 0 := by
   simp only [add_valuation_def, if_neg one_ne_zero, valuation_one, WithTop.coe_zero]
 #align padic.add_valuation.map_one Padic.AddValuation.map_one
+-/
 
+#print Padic.AddValuation.map_mul /-
 theorem AddValuation.map_mul (x y : ℚ_[p]) :
     addValuationDef (x * y) = addValuationDef x + addValuationDef y :=
   by
@@ -1173,7 +1321,9 @@ theorem AddValuation.map_mul (x y : ℚ_[p]) :
       rw [if_neg hx, if_neg hy, if_neg (mul_ne_zero hx hy), ← WithTop.coe_add, WithTop.coe_eq_coe,
         valuation_map_mul hx hy]
 #align padic.add_valuation.map_mul Padic.AddValuation.map_mul
+-/
 
+#print Padic.AddValuation.map_add /-
 theorem AddValuation.map_add (x y : ℚ_[p]) :
     min (addValuationDef x) (addValuationDef y) ≤ addValuationDef (x + y) :=
   by
@@ -1188,23 +1338,29 @@ theorem AddValuation.map_add (x y : ℚ_[p]) :
       · rw [if_neg hx, if_neg hy, if_neg hxy, ← WithTop.coe_min, WithTop.coe_le_coe]
         exact valuation_map_add hxy
 #align padic.add_valuation.map_add Padic.AddValuation.map_add
+-/
 
+#print Padic.addValuation /-
 /-- The additive `p`-adic valuation on `ℚ_[p]`, as an `add_valuation`. -/
 def addValuation : AddValuation ℚ_[p] (WithTop ℤ) :=
   AddValuation.of addValuationDef AddValuation.map_zero AddValuation.map_one AddValuation.map_add
     AddValuation.map_mul
 #align padic.add_valuation Padic.addValuation
+-/
 
+#print Padic.addValuation.apply /-
 @[simp]
 theorem addValuation.apply {x : ℚ_[p]} (hx : x ≠ 0) : x.AddValuation = x.Valuation := by
   simp only [AddValuation, AddValuation.of_apply, add_valuation_def, if_neg hx]
 #align padic.add_valuation.apply Padic.addValuation.apply
+-/
 
 section NormLeIff
 
 /-! ### Various characterizations of open unit balls -/
 
 
+#print Padic.norm_le_pow_iff_norm_lt_pow_add_one /-
 theorem norm_le_pow_iff_norm_lt_pow_add_one (x : ℚ_[p]) (n : ℤ) : ‖x‖ ≤ p ^ n ↔ ‖x‖ < p ^ (n + 1) :=
   by
   have aux : ∀ n : ℤ, 0 < (p ^ n : ℝ) := by apply Nat.zpow_pos_of_pos; exact hp.1.Pos
@@ -1214,11 +1370,15 @@ theorem norm_le_pow_iff_norm_lt_pow_add_one (x : ℚ_[p]) (n : ℤ) : ‖x‖ 
   have H := zpow_strictMono h1p
   rw [H.le_iff_le, H.lt_iff_lt, Int.lt_add_one_iff]
 #align padic.norm_le_pow_iff_norm_lt_pow_add_one Padic.norm_le_pow_iff_norm_lt_pow_add_one
+-/
 
+#print Padic.norm_lt_pow_iff_norm_le_pow_sub_one /-
 theorem norm_lt_pow_iff_norm_le_pow_sub_one (x : ℚ_[p]) (n : ℤ) : ‖x‖ < p ^ n ↔ ‖x‖ ≤ p ^ (n - 1) :=
   by rw [norm_le_pow_iff_norm_lt_pow_add_one, sub_add_cancel]
 #align padic.norm_lt_pow_iff_norm_le_pow_sub_one Padic.norm_lt_pow_iff_norm_le_pow_sub_one
+-/
 
+#print Padic.norm_le_one_iff_val_nonneg /-
 theorem norm_le_one_iff_val_nonneg (x : ℚ_[p]) : ‖x‖ ≤ 1 ↔ 0 ≤ x.Valuation :=
   by
   by_cases hx : x = 0
@@ -1226,6 +1386,7 @@ theorem norm_le_one_iff_val_nonneg (x : ℚ_[p]) : ‖x‖ ≤ 1 ↔ 0 ≤ x.Val
   · rw [norm_eq_pow_val hx, ← zpow_zero (p : ℝ), zpow_le_iff_le, Right.neg_nonpos_iff]
     exact Nat.one_lt_cast.2 (Nat.Prime.one_lt' p).1
 #align padic.norm_le_one_iff_val_nonneg Padic.norm_le_one_iff_val_nonneg
+-/
 
 end NormLeIff
 
Diff
@@ -957,7 +957,6 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
       ‖(k : ℚ_[p])‖ = ‖((k : ℚ) : ℚ_[p])‖ := by norm_cast
       _ = padicNorm p k := (padicNormE.eq_padicNorm _)
       _ = 1 := _
-      
     rw [padicNorm]
     split_ifs with H
     · exfalso
@@ -977,7 +976,6 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
       _ ≤ ‖(p : ℚ_[p])‖ * 1 :=
         mul_le_mul le_rfl (by simpa using norm_int_le_one _) (norm_nonneg _) (norm_nonneg _)
       _ < 1 := _
-      
     · rw [mul_one, padicNormE.norm_p]
       apply inv_lt_one
       exact_mod_cast hp.1.one_lt
@@ -1043,7 +1041,6 @@ theorem padicNormE_lim_le {f : CauSeq ℚ_[p] norm} {a : ℝ} (ha : 0 < a) (hf :
     ‖f.lim‖ = ‖f.lim - f N + f N‖ := by simp
     _ ≤ max ‖f.lim - f N‖ ‖f N‖ := (padicNormE.nonarchimedean _ _)
     _ ≤ a := max_le (le_of_lt (hN _ le_rfl)) (hf _)
-    
 #align padic.padic_norm_e_lim_le Padic.padicNormE_lim_le
 
 open Filter Set
Diff
@@ -672,7 +672,7 @@ open PadicSeq Padic
 
 variable {p : ℕ} [Fact p.Prime] (f : CauSeq _ (@padicNormE p _))
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (m n «expr ≥ » N) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (m n «expr ≥ » N) -/
 theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicNormE (q - r) < ε :=
   Quotient.inductionOn q fun q' =>
     have : ∃ N, ∀ (m) (_ : m ≥ N) (n) (_ : n ≥ N), padicNorm p (q' m - q' n) < ε := cauchy₂ _ hε
Diff
@@ -134,7 +134,7 @@ theorem norm_zero_iff (f : PadicSeq p) : f.norm = 0 ↔ f ≈ 0 :=
   constructor
   · intro h
     by_contra hf
-    unfold norm at h ; split_ifs  at h 
+    unfold norm at h ; split_ifs at h 
     apply hf
     intro ε hε
     exists stationary_point hf
@@ -349,7 +349,7 @@ private theorem norm_eq_of_equiv_aux {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : 
   let i := max N (max (stationary_point hf) (stationary_point hg))
   have hi : N ≤ i := le_max_left _ _
   have hN' := hN _ hi
-  padic_index_simp [N, hf, hg]  at hN' h hlt 
+  padic_index_simp [N, hf, hg] at hN' h hlt 
   have hpne : padicNorm p (f i) ≠ padicNorm p (-g i) := by rwa [← padicNorm.neg (g i)] at h 
   let hpnem := add_eq_max_of_ne hpne
   have hpeq : padicNorm p ((f - g) i) = max (padicNorm p (f i)) (padicNorm p (g i)) := by
@@ -466,8 +466,8 @@ theorem add_eq_max_of_ne {f g : PadicSeq p} (hfgne : f.norm ≠ g.norm) :
       have h2 : g.norm = 0 := (norm_zero_iff _).2 hg
       rw [h1, h2] <;> rw [max_eq_left (norm_nonneg _)]
     else by
-      unfold norm at hfgne ⊢; split_ifs  at hfgne ⊢
-      padic_index_simp [hfg, hf, hg]  at hfgne ⊢
+      unfold norm at hfgne ⊢; split_ifs at hfgne ⊢
+      padic_index_simp [hfg, hf, hg] at hfgne ⊢
       exact padicNorm.add_eq_max_of_ne hfgne
 #align padic_seq.add_eq_max_of_ne PadicSeq.add_eq_max_of_ne
 
@@ -626,8 +626,8 @@ theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) : ∃ N, ∀ i ≥ N, pa
   cases' cauchy₂ f hε with N hN
   rcases h N with ⟨i, hi, hge⟩
   have hne : ¬f - const (padicNorm p) (f i) ≈ 0 := by intro h;
-    unfold PadicSeq.norm at hge  <;> split_ifs  at hge ; exact not_lt_of_ge hge hε
-  unfold PadicSeq.norm at hge  <;> split_ifs  at hge 
+    unfold PadicSeq.norm at hge  <;> split_ifs at hge ; exact not_lt_of_ge hge hε
+  unfold PadicSeq.norm at hge  <;> split_ifs at hge 
   apply not_le_of_gt _ hge
   cases' em (N ≤ stationary_point hne) with hgen hngen
   · apply hN _ hgen _ hi
@@ -723,7 +723,7 @@ theorem exi_rat_seq_conv_cauchy : IsCauSeq (padicNorm p) (limSeq f) := fun ε h
   intro j hj
   suffices padicNormE (lim_seq f j - f (max N N2) + (f (max N N2) - lim_seq f (max N N2))) < ε
     by
-    ring_nf  at this ⊢
+    ring_nf at this ⊢
     rw [← padicNormE.eq_padic_norm']
     exact_mod_cast this
   · apply lt_of_le_of_lt
@@ -962,10 +962,10 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
     split_ifs with H
     · exfalso
       apply h
-      norm_cast  at H 
+      norm_cast at H 
       rw [H]
       apply dvd_zero
-    · norm_cast  at H ⊢
+    · norm_cast at H ⊢
       convert zpow_zero _
       rw [neg_eq_zero, padicValRat.of_int]
       norm_cast
@@ -1027,7 +1027,7 @@ instance complete : CauSeq.IsComplete ℚ_[p] norm :=
   exists q
   intro ε hε
   cases' exists_rat_btwn hε with ε' hε'
-  norm_cast  at hε' 
+  norm_cast at hε' 
   cases' hq ε' hε'.1 with N hN; exists N
   intro i hi; let h := hN i hi
   unfold norm
Diff
@@ -103,10 +103,10 @@ theorem stationary {f : CauSeq ℚ (padicNorm p)} (hf : ¬f ≈ 0) :
     have : padicNorm p (f n - f m) < max (padicNorm p (f n)) (padicNorm p (f m)) :=
       lt_max_iff.2 (Or.inl this)
     by_contra hne
-    rw [← padicNorm.neg (f m)] at hne
+    rw [← padicNorm.neg (f m)] at hne 
     have hnam := add_eq_max_of_ne hne
-    rw [padicNorm.neg, max_comm] at hnam
-    rw [← hnam, sub_eq_add_neg, add_comm] at this
+    rw [padicNorm.neg, max_comm] at hnam 
+    rw [← hnam, sub_eq_add_neg, add_comm] at this 
     apply _root_.lt_irrefl _ this⟩
 #align padic_seq.stationary PadicSeq.stationary
 
@@ -134,7 +134,7 @@ theorem norm_zero_iff (f : PadicSeq p) : f.norm = 0 ↔ f ≈ 0 :=
   constructor
   · intro h
     by_contra hf
-    unfold norm at h; split_ifs  at h
+    unfold norm at h ; split_ifs  at h 
     apply hf
     intro ε hε
     exists stationary_point hf
@@ -349,12 +349,12 @@ private theorem norm_eq_of_equiv_aux {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : 
   let i := max N (max (stationary_point hf) (stationary_point hg))
   have hi : N ≤ i := le_max_left _ _
   have hN' := hN _ hi
-  padic_index_simp [N, hf, hg]  at hN' h hlt
-  have hpne : padicNorm p (f i) ≠ padicNorm p (-g i) := by rwa [← padicNorm.neg (g i)] at h
+  padic_index_simp [N, hf, hg]  at hN' h hlt 
+  have hpne : padicNorm p (f i) ≠ padicNorm p (-g i) := by rwa [← padicNorm.neg (g i)] at h 
   let hpnem := add_eq_max_of_ne hpne
   have hpeq : padicNorm p ((f - g) i) = max (padicNorm p (f i)) (padicNorm p (g i)) := by
-    rwa [padicNorm.neg] at hpnem
-  rw [hpeq, max_eq_left_of_lt hlt] at hN'
+    rwa [padicNorm.neg] at hpnem 
+  rw [hpeq, max_eq_left_of_lt hlt] at hN' 
   have : padicNorm p (f i) < padicNorm p (f i) := by apply lt_of_lt_of_le hN'; apply sub_le_self;
     apply padicNorm.nonneg
   exact lt_irrefl _ this
@@ -398,7 +398,7 @@ theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.n
     if hf : f ≈ 0 then
       by
       have hfg' : f + g ≈ g := by
-        change lim_zero (f - 0) at hf
+        change lim_zero (f - 0) at hf 
         show lim_zero (f + g - g); · simpa only [sub_zero, add_sub_cancel] using hf
       have hcfg : (f + g).norm = g.norm := norm_equiv hfg'
       have hcl : f.norm = 0 := (norm_zero_iff f).2 hf
@@ -408,7 +408,7 @@ theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.n
       if hg : g ≈ 0 then
         by
         have hfg' : f + g ≈ f := by
-          change lim_zero (g - 0) at hg
+          change lim_zero (g - 0) at hg 
           show lim_zero (f + g - f); · simpa only [add_sub_cancel', sub_zero] using hg
         have hcfg : (f + g).norm = f.norm := norm_equiv hfg'
         have hcl : g.norm = 0 := (norm_zero_iff g).2 hg
@@ -466,8 +466,8 @@ theorem add_eq_max_of_ne {f g : PadicSeq p} (hfgne : f.norm ≠ g.norm) :
       have h2 : g.norm = 0 := (norm_zero_iff _).2 hg
       rw [h1, h2] <;> rw [max_eq_left (norm_nonneg _)]
     else by
-      unfold norm at hfgne⊢; split_ifs  at hfgne⊢
-      padic_index_simp [hfg, hf, hg]  at hfgne⊢
+      unfold norm at hfgne ⊢; split_ifs  at hfgne ⊢
+      padic_index_simp [hfg, hf, hg]  at hfgne ⊢
       exact padicNorm.add_eq_max_of_ne hfgne
 #align padic_seq.add_eq_max_of_ne PadicSeq.add_eq_max_of_ne
 
@@ -626,8 +626,8 @@ theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) : ∃ N, ∀ i ≥ N, pa
   cases' cauchy₂ f hε with N hN
   rcases h N with ⟨i, hi, hge⟩
   have hne : ¬f - const (padicNorm p) (f i) ≈ 0 := by intro h;
-    unfold PadicSeq.norm at hge <;> split_ifs  at hge; exact not_lt_of_ge hge hε
-  unfold PadicSeq.norm at hge <;> split_ifs  at hge
+    unfold PadicSeq.norm at hge  <;> split_ifs  at hge ; exact not_lt_of_ge hge hε
+  unfold PadicSeq.norm at hge  <;> split_ifs  at hge 
   apply not_le_of_gt _ hge
   cases' em (N ≤ stationary_point hne) with hgen hngen
   · apply hN _ hgen _ hi
@@ -687,7 +687,7 @@ theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicN
         have := stationary_point_spec hne'
         cases' Decidable.em (stationary_point hne' ≤ N) with hle hle
         · have := Eq.symm (this le_rfl hle)
-          simp only [const_apply, sub_apply, padicNorm.zero, sub_self] at this
+          simp only [const_apply, sub_apply, padicNorm.zero, sub_self] at this 
           simpa only [this]
         · exact hN _ (lt_of_not_ge hle).le _ le_rfl⟩
 #align padic.rat_dense' Padic.rat_dense'
@@ -723,13 +723,13 @@ theorem exi_rat_seq_conv_cauchy : IsCauSeq (padicNorm p) (limSeq f) := fun ε h
   intro j hj
   suffices padicNormE (lim_seq f j - f (max N N2) + (f (max N N2) - lim_seq f (max N N2))) < ε
     by
-    ring_nf  at this⊢
+    ring_nf  at this ⊢
     rw [← padicNormE.eq_padic_norm']
     exact_mod_cast this
   · apply lt_of_le_of_lt
     · apply padic_norm_e.add_le
     · have : (3 : ℚ) ≠ 0 := by norm_num
-      have : ε = ε / 3 + ε / 3 + ε / 3 := by field_simp [this] ;
+      have : ε = ε / 3 + ε / 3 + ε / 3 := by field_simp [this];
         simp only [bit0, bit1, mul_add, mul_one]
       rw [this]
       apply add_lt_add
@@ -962,10 +962,10 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
     split_ifs with H
     · exfalso
       apply h
-      norm_cast  at H
+      norm_cast  at H 
       rw [H]
       apply dvd_zero
-    · norm_cast  at H⊢
+    · norm_cast  at H ⊢
       convert zpow_zero _
       rw [neg_eq_zero, padicValRat.of_int]
       norm_cast
@@ -1021,13 +1021,13 @@ instance complete : CauSeq.IsComplete ℚ_[p] norm :=
     by
     intro ε hε
     let h := is_cau f ε (by exact_mod_cast hε)
-    unfold norm at h
+    unfold norm at h 
     apply_mod_cast h
   cases' Padic.complete' ⟨f, cau_seq_norm_e⟩ with q hq
   exists q
   intro ε hε
   cases' exists_rat_btwn hε with ε' hε'
-  norm_cast  at hε'
+  norm_cast  at hε' 
   cases' hq ε' hε'.1 with N hN; exists N
   intro i hi; let h := hN i hi
   unfold norm
@@ -1085,7 +1085,7 @@ theorem valuation_zero : valuation (0 : ℚ_[p]) = 0 :=
 theorem valuation_one : valuation (1 : ℚ_[p]) = 0 :=
   by
   change dite (CauSeq.const (padicNorm p) 1 ≈ _) _ _ = _
-  have h : ¬CauSeq.const (padicNorm p) 1 ≈ 0 := by intro H; erw [const_equiv p] at H;
+  have h : ¬CauSeq.const (padicNorm p) 1 ≈ 0 := by intro H; erw [const_equiv p] at H ;
     exact one_ne_zero H
   rw [dif_neg h]
   simp
@@ -1128,7 +1128,7 @@ theorem valuation_map_add {x y : ℚ_[p]} (hxy : x + y ≠ 0) :
         rw [← Nat.cast_one, Nat.cast_lt]
         exact Nat.Prime.one_lt hp.elim
       rwa [norm_eq_pow_val hx, norm_eq_pow_val hy, norm_eq_pow_val hxy,
-        zpow_le_max_iff_min_le hp_one] at h_norm
+        zpow_le_max_iff_min_le hp_one] at h_norm 
 #align padic.valuation_map_add Padic.valuation_map_add
 
 @[simp]
@@ -1144,7 +1144,7 @@ theorem valuation_map_mul {x y : ℚ_[p]} (hx : x ≠ 0) (hy : y ≠ 0) :
     rw [← Nat.cast_zero, Nat.cast_lt]
     exact Nat.Prime.pos hp.elim
   rw [norm_eq_pow_val hx, norm_eq_pow_val hy, norm_eq_pow_val (mul_ne_zero hx hy), ←
-    zpow_add₀ (ne_of_gt hp_pos), zpow_inj hp_pos hp_ne_one, ← neg_add, neg_inj] at h_norm
+    zpow_add₀ (ne_of_gt hp_pos), zpow_inj hp_pos hp_ne_one, ← neg_add, neg_inj] at h_norm 
   exact h_norm
 #align padic.valuation_map_mul Padic.valuation_map_mul
 
Diff
@@ -69,7 +69,7 @@ p-adic, p adic, padic, norm, valuation, cauchy, completion, p-adic completion
 
 noncomputable section
 
-open Classical
+open scoped Classical
 
 open Nat multiplicity padicNorm CauSeq CauSeq.Completion Metric
 
Diff
@@ -87,12 +87,6 @@ section
 
 variable {p : ℕ} [Fact p.Prime]
 
-/- warning: padic_seq.stationary -> PadicSeq.stationary is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)}, (Not (HasEquivₓ.Equiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (setoidHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) f (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (OfNat.mk.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.zero.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.hasZero.{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 _inst_1))))))) -> (Exists.{1} Nat (fun (N : Nat) => forall (m : Nat) (n : Nat), (LE.le.{0} Nat Nat.hasLe N m) -> (LE.le.{0} Nat Nat.hasLe N n) -> (Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f n)) (padicNorm p (coeFn.{1, 1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f m)))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)}, (Not (HasEquiv.Equiv.{1, 0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (instHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) f (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.toOfNat0.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Exists.{1} Nat (fun (N : Nat) => forall (m : Nat) (n : Nat), (LE.le.{0} Nat instLENat N m) -> (LE.le.{0} Nat instLENat N n) -> (Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f n)) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f m)))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.stationary PadicSeq.stationaryₓ'. -/
 /-- The `p`-adic norm of the entries of a nonzero Cauchy sequence of rationals is eventually
 constant. -/
 theorem stationary {f : CauSeq ℚ (padicNorm p)} (hf : ¬f ≈ 0) :
@@ -116,23 +110,11 @@ theorem stationary {f : CauSeq ℚ (padicNorm p)} (hf : ¬f ≈ 0) :
     apply _root_.lt_irrefl _ this⟩
 #align padic_seq.stationary PadicSeq.stationary
 
-/- warning: padic_seq.stationary_point -> PadicSeq.stationaryPoint is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> Nat
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> Nat
-Case conversion may be inaccurate. Consider using '#align padic_seq.stationary_point PadicSeq.stationaryPointₓ'. -/
 /-- For all `n ≥ stationary_point f hf`, the `p`-adic norm of `f n` is the same. -/
 def stationaryPoint {f : PadicSeq p} (hf : ¬f ≈ 0) : ℕ :=
   Classical.choose <| stationary hf
 #align padic_seq.stationary_point PadicSeq.stationaryPoint
 
-/- warning: padic_seq.stationary_point_spec -> PadicSeq.stationaryPoint_spec is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) {m : Nat} {n : Nat}, (LE.le.{0} Nat Nat.hasLe (PadicSeq.stationaryPoint p _inst_1 f hf) m) -> (LE.le.{0} Nat Nat.hasLe (PadicSeq.stationaryPoint p _inst_1 f hf) n) -> (Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f n)) (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f m)))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) {m : Nat} {n : Nat}, (LE.le.{0} Nat instLENat (PadicSeq.stationaryPoint p _inst_1 f hf) m) -> (LE.le.{0} Nat instLENat (PadicSeq.stationaryPoint p _inst_1 f hf) n) -> (Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f n)) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f m)))
-Case conversion may be inaccurate. Consider using '#align padic_seq.stationary_point_spec PadicSeq.stationaryPoint_specₓ'. -/
 theorem stationaryPoint_spec {f : PadicSeq p} (hf : ¬f ≈ 0) :
     ∀ {m n},
       stationaryPoint hf ≤ m → stationaryPoint hf ≤ n → padicNorm p (f n) = padicNorm p (f m) :=
@@ -147,12 +129,6 @@ def norm (f : PadicSeq p) : ℚ :=
 #align padic_seq.norm PadicSeq.norm
 -/
 
-/- warning: padic_seq.norm_zero_iff -> PadicSeq.norm_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_zero_iff PadicSeq.norm_zero_iffₓ'. -/
 theorem norm_zero_iff (f : PadicSeq p) : f.norm = 0 ↔ f ≈ 0 :=
   by
   constructor
@@ -177,34 +153,16 @@ open CauSeq
 
 variable {p : ℕ} [Fact p.Prime]
 
-/- warning: padic_seq.equiv_zero_of_val_eq_of_equiv_zero -> PadicSeq.equiv_zero_of_val_eq_of_equiv_zero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (forall (k : Nat), Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f k)) (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) g k))) -> (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1)))))) -> (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 _inst_1))) g (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (forall (k : Nat), Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f k)) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) g k))) -> (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1))))) -> (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 _inst_1))) g (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.equiv_zero_of_val_eq_of_equiv_zero PadicSeq.equiv_zero_of_val_eq_of_equiv_zeroₓ'. -/
 theorem equiv_zero_of_val_eq_of_equiv_zero {f g : PadicSeq p}
     (h : ∀ k, padicNorm p (f k) = padicNorm p (g k)) (hf : f ≈ 0) : g ≈ 0 := fun ε hε =>
   let ⟨i, hi⟩ := hf _ hε
   ⟨i, fun j hj => by simpa [h] using hi _ hj⟩
 #align padic_seq.equiv_zero_of_val_eq_of_equiv_zero PadicSeq.equiv_zero_of_val_eq_of_equiv_zero
 
-/- warning: padic_seq.norm_nonzero_of_not_equiv_zero -> PadicSeq.norm_nonzero_of_not_equiv_zero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> (Ne.{1} Rat (PadicSeq.norm p _inst_1 f) (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Ne.{1} Rat (PadicSeq.norm p _inst_1 f) (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)))
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_nonzero_of_not_equiv_zero PadicSeq.norm_nonzero_of_not_equiv_zeroₓ'. -/
 theorem norm_nonzero_of_not_equiv_zero {f : PadicSeq p} (hf : ¬f ≈ 0) : f.norm ≠ 0 :=
   hf ∘ f.norm_zero_iff.1
 #align padic_seq.norm_nonzero_of_not_equiv_zero PadicSeq.norm_nonzero_of_not_equiv_zero
 
-/- warning: padic_seq.norm_eq_norm_app_of_nonzero -> PadicSeq.norm_eq_norm_app_of_nonzero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> (Exists.{1} Rat (fun (k : Rat) => And (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (padicNorm p k)) (Ne.{1} Rat k (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Exists.{1} Rat (fun (k : Rat) => And (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (padicNorm p k)) (Ne.{1} Rat k (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_eq_norm_app_of_nonzero PadicSeq.norm_eq_norm_app_of_nonzeroₓ'. -/
 theorem norm_eq_norm_app_of_nonzero {f : PadicSeq p} (hf : ¬f ≈ 0) :
     ∃ k, f.norm = padicNorm p k ∧ k ≠ 0 :=
   have heq : f.norm = padicNorm p (f <| stationaryPoint hf) := by simp [norm, hf]
@@ -212,42 +170,18 @@ theorem norm_eq_norm_app_of_nonzero {f : PadicSeq p} (hf : ¬f ≈ 0) :
     norm_nonzero_of_not_equiv_zero hf (by simpa [h] using HEq)⟩
 #align padic_seq.norm_eq_norm_app_of_nonzero PadicSeq.norm_eq_norm_app_of_nonzero
 
-/- warning: padic_seq.not_lim_zero_const_of_nonzero -> PadicSeq.not_limZero_const_of_nonzero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Not (CauSeq.LimZero.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (CauSeq.const.{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 _inst_1) q)))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Not (CauSeq.LimZero.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (CauSeq.const.{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 _inst_1) q)))
-Case conversion may be inaccurate. Consider using '#align padic_seq.not_lim_zero_const_of_nonzero PadicSeq.not_limZero_const_of_nonzeroₓ'. -/
 theorem not_limZero_const_of_nonzero {q : ℚ} (hq : q ≠ 0) : ¬LimZero (const (padicNorm p) q) :=
   fun h' => hq <| const_limZero.1 h'
 #align padic_seq.not_lim_zero_const_of_nonzero PadicSeq.not_limZero_const_of_nonzero
 
-/- warning: padic_seq.not_equiv_zero_const_of_nonzero -> PadicSeq.not_equiv_zero_const_of_nonzero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Not (HasEquivₓ.Equiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (setoidHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) (CauSeq.const.{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 _inst_1) q) (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (OfNat.mk.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.zero.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.hasZero.{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 _inst_1)))))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Not (HasEquiv.Equiv.{1, 0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (instHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) (CauSeq.const.{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 _inst_1) q) (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.toOfNat0.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.instZeroCauSeq.{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 _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.not_equiv_zero_const_of_nonzero PadicSeq.not_equiv_zero_const_of_nonzeroₓ'. -/
 theorem not_equiv_zero_const_of_nonzero {q : ℚ} (hq : q ≠ 0) : ¬const (padicNorm p) q ≈ 0 :=
   fun h : LimZero (const (padicNorm p) q - 0) => not_limZero_const_of_nonzero hq <| by simpa using h
 #align padic_seq.not_equiv_zero_const_of_nonzero PadicSeq.not_equiv_zero_const_of_nonzero
 
-/- warning: padic_seq.norm_nonneg -> PadicSeq.norm_nonneg is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p), LE.le.{0} Rat Rat.hasLe (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))) (PadicSeq.norm p _inst_1 f)
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p), LE.le.{0} Rat Rat.instLERat (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)) (PadicSeq.norm p _inst_1 f)
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_nonneg PadicSeq.norm_nonnegₓ'. -/
 theorem norm_nonneg (f : PadicSeq p) : 0 ≤ f.norm :=
   if hf : f ≈ 0 then by simp [hf, norm] else by simp [norm, hf, padicNorm.nonneg]
 #align padic_seq.norm_nonneg PadicSeq.norm_nonneg
 
-/- warning: padic_seq.lift_index_left_left -> PadicSeq.lift_index_left_left is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) (v2 : Nat) (v3 : Nat), Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (LinearOrder.max.{0} Nat Nat.linearOrder (PadicSeq.stationaryPoint p _inst_1 f hf) (LinearOrder.max.{0} Nat Nat.linearOrder v2 v3))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) (v2 : Nat) (v3 : Nat), Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (Max.max.{0} Nat Nat.instMaxNat (PadicSeq.stationaryPoint p _inst_1 f hf) (Max.max.{0} Nat Nat.instMaxNat v2 v3))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.lift_index_left_left PadicSeq.lift_index_left_leftₓ'. -/
 /-- An auxiliary lemma for manipulating sequence indices. -/
 theorem lift_index_left_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v2 v3 : ℕ) :
     padicNorm p (f (stationaryPoint hf)) = padicNorm p (f (max (stationaryPoint hf) (max v2 v3))) :=
@@ -257,12 +191,6 @@ theorem lift_index_left_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v2 v3 : ℕ) :
   · exact le_rfl
 #align padic_seq.lift_index_left_left PadicSeq.lift_index_left_left
 
-/- warning: padic_seq.lift_index_left -> PadicSeq.lift_index_left is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) (v1 : Nat) (v3 : Nat), Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (LinearOrder.max.{0} Nat Nat.linearOrder v1 (LinearOrder.max.{0} Nat Nat.linearOrder (PadicSeq.stationaryPoint p _inst_1 f hf) v3))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) (v1 : Nat) (v3 : Nat), Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (Max.max.{0} Nat Nat.instMaxNat v1 (Max.max.{0} Nat Nat.instMaxNat (PadicSeq.stationaryPoint p _inst_1 f hf) v3))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.lift_index_left PadicSeq.lift_index_leftₓ'. -/
 /-- An auxiliary lemma for manipulating sequence indices. -/
 theorem lift_index_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v1 v3 : ℕ) :
     padicNorm p (f (stationaryPoint hf)) = padicNorm p (f (max v1 (max (stationaryPoint hf) v3))) :=
@@ -274,12 +202,6 @@ theorem lift_index_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v1 v3 : ℕ) :
   · exact le_rfl
 #align padic_seq.lift_index_left PadicSeq.lift_index_left
 
-/- warning: padic_seq.lift_index_right -> PadicSeq.lift_index_right is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) (v1 : Nat) (v2 : Nat), Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (LinearOrder.max.{0} Nat Nat.linearOrder v1 (LinearOrder.max.{0} Nat Nat.linearOrder v2 (PadicSeq.stationaryPoint p _inst_1 f hf)))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) (v1 : Nat) (v2 : Nat), Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (Max.max.{0} Nat Nat.instMaxNat v1 (Max.max.{0} Nat Nat.instMaxNat v2 (PadicSeq.stationaryPoint p _inst_1 f hf)))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.lift_index_right PadicSeq.lift_index_rightₓ'. -/
 /-- An auxiliary lemma for manipulating sequence indices. -/
 theorem lift_index_right {f : PadicSeq p} (hf : ¬f ≈ 0) (v1 v2 : ℕ) :
     padicNorm p (f (stationaryPoint hf)) = padicNorm p (f (max v1 (max v2 (stationaryPoint hf)))) :=
@@ -310,12 +232,6 @@ def valuation (f : PadicSeq p) : ℤ :=
 #align padic_seq.valuation PadicSeq.valuation
 -/
 
-/- warning: padic_seq.norm_eq_pow_val -> PadicSeq.norm_eq_pow_val is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Rat (HasLiftT.mk.{1, 1} Nat Rat (CoeTCₓ.coe.{1, 1} Nat Rat (Nat.castCoe.{0} Rat (AddMonoidWithOne.toNatCast.{0} Rat (AddGroupWithOne.toAddMonoidWithOne.{0} Rat (AddCommGroupWithOne.toAddGroupWithOne.{0} Rat (Ring.toAddCommGroupWithOne.{0} Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField)))))))))) p) (Neg.neg.{0} Int Int.hasNeg (PadicSeq.valuation p _inst_1 f))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) (Nat.cast.{0} Rat (Semiring.toNatCast.{0} Rat Rat.semiring) p) (Neg.neg.{0} Int Int.instNegInt (PadicSeq.valuation p _inst_1 f))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_eq_pow_val PadicSeq.norm_eq_pow_valₓ'. -/
 theorem norm_eq_pow_val {f : PadicSeq p} (hf : ¬f ≈ 0) : f.norm = p ^ (-f.Valuation : ℤ) :=
   by
   rw [norm, Valuation, dif_neg hf, dif_neg hf, padicNorm, if_neg]
@@ -328,12 +244,6 @@ theorem norm_eq_pow_val {f : PadicSeq p} (hf : ¬f ≈ 0) : f.norm = p ^ (-f.Val
   simpa [H] using hε
 #align padic_seq.norm_eq_pow_val PadicSeq.norm_eq_pow_val
 
-/- warning: padic_seq.val_eq_iff_norm_eq -> PadicSeq.val_eq_iff_norm_eq is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> (Not (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 _inst_1))) g (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> (Iff (Eq.{1} Int (PadicSeq.valuation p _inst_1 f) (PadicSeq.valuation p _inst_1 g)) (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (PadicSeq.norm p _inst_1 g)))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Not (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 _inst_1))) g (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Iff (Eq.{1} Int (PadicSeq.valuation p _inst_1 f) (PadicSeq.valuation p _inst_1 g)) (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (PadicSeq.norm p _inst_1 g)))
-Case conversion may be inaccurate. Consider using '#align padic_seq.val_eq_iff_norm_eq PadicSeq.val_eq_iff_norm_eqₓ'. -/
 theorem val_eq_iff_norm_eq {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : ¬g ≈ 0) :
     f.Valuation = g.Valuation ↔ f.norm = g.norm :=
   by
@@ -381,12 +291,6 @@ variable {p : ℕ} [hp : Fact p.Prime]
 
 include hp
 
-/- warning: padic_seq.norm_mul -> PadicSeq.norm_mul is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p) (g : PadicSeq p), Eq.{1} Rat (PadicSeq.norm p hp (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))) f g)) (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.hasMul) (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p) (g : PadicSeq p), Eq.{1} Rat (PadicSeq.norm p hp (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))) f g)) (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.instMulRat) (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_mul PadicSeq.norm_mulₓ'. -/
 theorem norm_mul (f g : PadicSeq p) : (f * g).norm = f.norm * g.norm :=
   if hf : f ≈ 0 then by
     have hg : f * g ≈ 0 := mul_equiv_zero' _ hf
@@ -403,22 +307,10 @@ theorem norm_mul (f g : PadicSeq p) : (f * g).norm = f.norm * g.norm :=
       apply padicNorm.mul
 #align padic_seq.norm_mul PadicSeq.norm_mul
 
-/- warning: padic_seq.eq_zero_iff_equiv_zero -> PadicSeq.eq_zero_iff_equiv_zero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Eq.{1} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) (CauSeq.Completion.mk.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp) f) (OfNat.ofNat.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) 0 (OfNat.mk.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) 0 (Zero.zero.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) (CauSeq.Completion.Cauchy.hasZero.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)))))) (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))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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))))))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Eq.{1} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) (CauSeq.Completion.mk.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp) f) (OfNat.ofNat.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) 0 (Zero.toOfNat0.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) (CauSeq.Completion.instZeroCauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp))))) (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))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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)))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.eq_zero_iff_equiv_zero PadicSeq.eq_zero_iff_equiv_zeroₓ'. -/
 theorem eq_zero_iff_equiv_zero (f : PadicSeq p) : mk f = 0 ↔ f ≈ 0 :=
   mk_eq
 #align padic_seq.eq_zero_iff_equiv_zero PadicSeq.eq_zero_iff_equiv_zero
 
-/- warning: padic_seq.ne_zero_iff_nequiv_zero -> PadicSeq.ne_zero_iff_nequiv_zero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Ne.{1} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) (CauSeq.Completion.mk.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp) f) (OfNat.ofNat.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) 0 (OfNat.mk.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) 0 (Zero.zero.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) (CauSeq.Completion.Cauchy.hasZero.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)))))) (Not (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))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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)))))))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Ne.{1} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) (CauSeq.Completion.mk.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp) f) (OfNat.ofNat.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) 0 (Zero.toOfNat0.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) (CauSeq.Completion.instZeroCauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp))))) (Not (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))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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))))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.ne_zero_iff_nequiv_zero PadicSeq.ne_zero_iff_nequiv_zeroₓ'. -/
 theorem ne_zero_iff_nequiv_zero (f : PadicSeq p) : mk f ≠ 0 ↔ ¬f ≈ 0 :=
   not_iff_not.2 (eq_zero_iff_equiv_zero _)
 #align padic_seq.ne_zero_iff_nequiv_zero PadicSeq.ne_zero_iff_nequiv_zero
@@ -435,24 +327,12 @@ theorem norm_const (q : ℚ) : norm (const (padicNorm p) q) = padicNorm p q :=
 #align padic_seq.norm_const PadicSeq.norm_const
 -/
 
-/- warning: padic_seq.norm_values_discrete -> PadicSeq.norm_values_discrete is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (a : PadicSeq p), (Not (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))) a (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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))))))) -> (Exists.{1} Int (fun (z : Int) => Eq.{1} Rat (PadicSeq.norm p hp a) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Rat (HasLiftT.mk.{1, 1} Nat Rat (CoeTCₓ.coe.{1, 1} Nat Rat (Nat.castCoe.{0} Rat (AddMonoidWithOne.toNatCast.{0} Rat (AddGroupWithOne.toAddMonoidWithOne.{0} Rat (AddCommGroupWithOne.toAddGroupWithOne.{0} Rat (Ring.toAddCommGroupWithOne.{0} Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField)))))))))) p) (Neg.neg.{0} Int Int.hasNeg z))))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (a : PadicSeq p), (Not (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))) a (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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)))))) -> (Exists.{1} Int (fun (z : Int) => Eq.{1} Rat (PadicSeq.norm p hp a) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) (Nat.cast.{0} Rat (Semiring.toNatCast.{0} Rat Rat.semiring) p) (Neg.neg.{0} Int Int.instNegInt z))))
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_values_discrete PadicSeq.norm_values_discreteₓ'. -/
 theorem norm_values_discrete (a : PadicSeq p) (ha : ¬a ≈ 0) : ∃ z : ℤ, a.norm = p ^ (-z) :=
   by
   let ⟨k, hk, hk'⟩ := norm_eq_norm_app_of_nonzero ha
   simpa [hk] using padicNorm.values_discrete hk'
 #align padic_seq.norm_values_discrete PadicSeq.norm_values_discrete
 
-/- warning: padic_seq.norm_one -> PadicSeq.norm_one is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Rat (PadicSeq.norm p hp (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)))))) (OfNat.ofNat.{0} Rat 1 (OfNat.mk.{0} Rat 1 (One.one.{0} Rat Rat.hasOne)))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Rat (PadicSeq.norm p hp (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))))) (OfNat.ofNat.{0} Rat 1 (Rat.instOfNatRat 1))
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_one PadicSeq.norm_oneₓ'. -/
 theorem norm_one : norm (1 : PadicSeq p) = 1 :=
   by
   have h1 : ¬(1 : PadicSeq p) ≈ 0 := one_not_equiv_zero _
@@ -493,12 +373,6 @@ private theorem norm_eq_of_equiv {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : ¬g 
     apply le_of_not_gt hnlt
     apply h
 
-/- warning: padic_seq.norm_equiv -> PadicSeq.norm_equiv is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (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))) f g) -> (Eq.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (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))) f g) -> (Eq.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_equiv PadicSeq.norm_equivₓ'. -/
 theorem norm_equiv {f g : PadicSeq p} (hfg : f ≈ g) : f.norm = g.norm :=
   if hf : f ≈ 0 then by
     have hg : g ≈ 0 := Setoid.trans (Setoid.symm hfg) hf
@@ -515,12 +389,6 @@ private theorem norm_nonarchimedean_aux {f g : PadicSeq p} (hfg : ¬f + g ≈ 0)
   padic_index_simp [hfg, hf, hg]
   apply padicNorm.nonarchimedean
 
-/- warning: padic_seq.norm_nonarchimedean -> PadicSeq.norm_nonarchimedean is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p) (g : PadicSeq p), LE.le.{0} Rat Rat.hasLe (PadicSeq.norm p hp (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))) f g)) (LinearOrder.max.{0} Rat Rat.linearOrder (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p) (g : PadicSeq p), LE.le.{0} Rat Rat.instLERat (PadicSeq.norm p hp (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))) f g)) (Max.max.{0} Rat (LinearOrderedRing.toMax.{0} Rat Rat.instLinearOrderedRingRat) (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_nonarchimedean PadicSeq.norm_nonarchimedeanₓ'. -/
 theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.norm :=
   if hfg : f + g ≈ 0 then
     by
@@ -569,22 +437,10 @@ theorem norm_eq {f g : PadicSeq p} (h : ∀ k, padicNorm p (f k) = padicNorm p (
 #align padic_seq.norm_eq PadicSeq.norm_eq
 -/
 
-/- warning: padic_seq.norm_neg -> PadicSeq.norm_neg is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (a : PadicSeq p), Eq.{1} Rat (PadicSeq.norm p hp (Neg.neg.{0} (PadicSeq p) (CauSeq.hasNeg.{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)) a)) (PadicSeq.norm p hp a)
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (a : PadicSeq p), Eq.{1} Rat (PadicSeq.norm p hp (Neg.neg.{0} (PadicSeq p) (CauSeq.instNegCauSeq.{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)) a)) (PadicSeq.norm p hp a)
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_neg PadicSeq.norm_negₓ'. -/
 theorem norm_neg (a : PadicSeq p) : (-a).norm = a.norm :=
   norm_eq <| by simp
 #align padic_seq.norm_neg PadicSeq.norm_neg
 
-/- warning: padic_seq.norm_eq_of_add_equiv_zero -> PadicSeq.norm_eq_of_add_equiv_zero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (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))) (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))) f g) (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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)))))) -> (Eq.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (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))) (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))) f g) (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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))))) -> (Eq.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
-Case conversion may be inaccurate. Consider using '#align padic_seq.norm_eq_of_add_equiv_zero PadicSeq.norm_eq_of_add_equiv_zeroₓ'. -/
 theorem norm_eq_of_add_equiv_zero {f g : PadicSeq p} (h : f + g ≈ 0) : f.norm = g.norm :=
   by
   have : LimZero (f + g - 0) := h
@@ -593,12 +449,6 @@ theorem norm_eq_of_add_equiv_zero {f g : PadicSeq p} (h : f + g ≈ 0) : f.norm
   simpa only [norm_neg] using this
 #align padic_seq.norm_eq_of_add_equiv_zero PadicSeq.norm_eq_of_add_equiv_zero
 
-/- warning: padic_seq.add_eq_max_of_ne -> PadicSeq.add_eq_max_of_ne is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (Ne.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g)) -> (Eq.{1} Rat (PadicSeq.norm p hp (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))) f g)) (LinearOrder.max.{0} Rat Rat.linearOrder (PadicSeq.norm p hp f) (PadicSeq.norm p hp g)))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (Ne.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g)) -> (Eq.{1} Rat (PadicSeq.norm p hp (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))) f g)) (Max.max.{0} Rat (LinearOrderedRing.toMax.{0} Rat Rat.instLinearOrderedRingRat) (PadicSeq.norm p hp f) (PadicSeq.norm p hp g)))
-Case conversion may be inaccurate. Consider using '#align padic_seq.add_eq_max_of_ne PadicSeq.add_eq_max_of_neₓ'. -/
 theorem add_eq_max_of_ne {f g : PadicSeq p} (hfgne : f.norm ≠ g.norm) :
     (f + g).norm = max f.norm g.norm :=
   have hfg : ¬f + g ≈ 0 := mt norm_eq_of_add_equiv_zero hfgne
@@ -680,43 +530,19 @@ def mk : PadicSeq p → ℚ_[p] :=
 
 variable (p)
 
-/- warning: padic.zero_def -> Padic.zero_def is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) (OfNat.ofNat.{0} (Padic p _inst_1) 0 (OfNat.mk.{0} (Padic p _inst_1) 0 (Zero.zero.{0} (Padic p _inst_1) (Padic.hasZero p _inst_1)))) (Quotient.mk'.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1)) (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (OfNat.mk.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.zero.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.hasZero.{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 _inst_1))))))
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) (OfNat.ofNat.{0} (Padic p _inst_1) 0 (Zero.toOfNat0.{0} (Padic p _inst_1) (Padic.instZeroPadic p _inst_1))) (Quotient.mk.{1} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1)) (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.toOfNat0.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.instZeroCauSeq.{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 _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align padic.zero_def Padic.zero_defₓ'. -/
 theorem zero_def : (0 : ℚ_[p]) = ⟦0⟧ :=
   rfl
 #align padic.zero_def Padic.zero_def
 
-/- warning: padic.mk_eq -> Padic.mk_eq is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, Iff (Eq.{1} (Padic p _inst_1) (Padic.mk p _inst_1 f) (Padic.mk p _inst_1 g)) (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 _inst_1))) f g)
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, Iff (Eq.{1} (Padic p _inst_1) (Padic.mk p _inst_1 f) (Padic.mk p _inst_1 g)) (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 _inst_1))) f g)
-Case conversion may be inaccurate. Consider using '#align padic.mk_eq Padic.mk_eqₓ'. -/
 theorem mk_eq {f g : PadicSeq p} : mk f = mk g ↔ f ≈ g :=
   Quotient.eq'
 #align padic.mk_eq Padic.mk_eq
 
-/- warning: padic.const_equiv -> Padic.const_equiv is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {q : Rat} {r : Rat}, Iff (HasEquivₓ.Equiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (setoidHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) (CauSeq.const.{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 _inst_1) q) (CauSeq.const.{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 _inst_1) r)) (Eq.{1} Rat q r)
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {q : Rat} {r : Rat}, Iff (HasEquiv.Equiv.{1, 0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (instHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) (CauSeq.const.{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 _inst_1) q) (CauSeq.const.{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 _inst_1) r)) (Eq.{1} Rat q r)
-Case conversion may be inaccurate. Consider using '#align padic.const_equiv Padic.const_equivₓ'. -/
 theorem const_equiv {q r : ℚ} : const (padicNorm p) q ≈ const (padicNorm p) r ↔ q = r :=
   ⟨fun heq => eq_of_sub_eq_zero <| const_limZero.1 HEq, fun heq => by
     rw [HEq] <;> apply Setoid.refl _⟩
 #align padic.const_equiv Padic.const_equiv
 
-/- warning: padic.coe_inj -> Padic.coe_inj is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {q : Rat} {r : Rat}, Iff (Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) r)) (Eq.{1} Rat q r)
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {q : Rat} {r : Rat}, Iff (Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) q) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) r)) (Eq.{1} Rat q r)
-Case conversion may be inaccurate. Consider using '#align padic.coe_inj Padic.coe_injₓ'. -/
 @[norm_cast]
 theorem coe_inj {q r : ℚ} : (↑q : ℚ_[p]) = ↑r ↔ q = r :=
   ⟨(const_equiv p).1 ∘ Quotient.eq'.1, fun h => by rw [h]⟩
@@ -725,78 +551,36 @@ theorem coe_inj {q r : ℚ} : (↑q : ℚ_[p]) = ↑r ↔ q = r :=
 instance : CharZero ℚ_[p] :=
   ⟨fun m n => by rw [← Rat.cast_coe_nat]; norm_cast; exact id⟩
 
-/- warning: padic.coe_add -> Padic.coe_add is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (HAdd.hAdd.{0, 0, 0} Rat Rat Rat (instHAdd.{0} Rat Rat.hasAdd) x y)) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.hasAdd p _inst_1)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) y))
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (HAdd.hAdd.{0, 0, 0} Rat Rat Rat (instHAdd.{0} Rat Rat.instAddRat) x y)) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.instAddPadic p _inst_1)) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) x) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) y))
-Case conversion may be inaccurate. Consider using '#align padic.coe_add Padic.coe_addₓ'. -/
 @[norm_cast]
 theorem coe_add : ∀ {x y : ℚ}, (↑(x + y) : ℚ_[p]) = ↑x + ↑y :=
   Rat.cast_add
 #align padic.coe_add Padic.coe_add
 
-/- warning: padic.coe_neg -> Padic.coe_neg is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat}, Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (Neg.neg.{0} Rat Rat.hasNeg x)) (Neg.neg.{0} (Padic p _inst_1) (Padic.hasNeg p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) x))
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat}, Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (Neg.neg.{0} Rat Rat.instNegRat x)) (Neg.neg.{0} (Padic p _inst_1) (Padic.instNegPadic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) x))
-Case conversion may be inaccurate. Consider using '#align padic.coe_neg Padic.coe_negₓ'. -/
 @[norm_cast]
 theorem coe_neg : ∀ {x : ℚ}, (↑(-x) : ℚ_[p]) = -↑x :=
   Rat.cast_neg
 #align padic.coe_neg Padic.coe_neg
 
-/- warning: padic.coe_mul -> Padic.coe_mul is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.hasMul) x y)) (HMul.hMul.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHMul.{0} (Padic p _inst_1) (Padic.hasMul p _inst_1)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) y))
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.instMulRat) x y)) (HMul.hMul.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHMul.{0} (Padic p _inst_1) (Padic.instMulPadic p _inst_1)) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) x) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) y))
-Case conversion may be inaccurate. Consider using '#align padic.coe_mul Padic.coe_mulₓ'. -/
 @[norm_cast]
 theorem coe_mul : ∀ {x y : ℚ}, (↑(x * y) : ℚ_[p]) = ↑x * ↑y :=
   Rat.cast_mul
 #align padic.coe_mul Padic.coe_mul
 
-/- warning: padic.coe_sub -> Padic.coe_sub is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (HSub.hSub.{0, 0, 0} Rat Rat Rat (instHSub.{0} Rat (SubNegMonoid.toHasSub.{0} Rat (AddGroup.toSubNegMonoid.{0} Rat Rat.addGroup))) x y)) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) y))
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (HSub.hSub.{0, 0, 0} Rat Rat Rat (instHSub.{0} Rat Rat.instSubRat) x y)) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) x) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) y))
-Case conversion may be inaccurate. Consider using '#align padic.coe_sub Padic.coe_subₓ'. -/
 @[norm_cast]
 theorem coe_sub : ∀ {x y : ℚ}, (↑(x - y) : ℚ_[p]) = ↑x - ↑y :=
   Rat.cast_sub
 #align padic.coe_sub Padic.coe_sub
 
-/- warning: padic.coe_div -> Padic.coe_div is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (HDiv.hDiv.{0, 0, 0} Rat Rat Rat (instHDiv.{0} Rat Rat.hasDiv) x y)) (HDiv.hDiv.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHDiv.{0} (Padic p _inst_1) (Padic.hasDiv p _inst_1)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) y))
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (HDiv.hDiv.{0, 0, 0} Rat Rat Rat (instHDiv.{0} Rat Rat.instDivRat) x y)) (HDiv.hDiv.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHDiv.{0} (Padic p _inst_1) (Padic.instDivPadic p _inst_1)) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) x) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) y))
-Case conversion may be inaccurate. Consider using '#align padic.coe_div Padic.coe_divₓ'. -/
 @[norm_cast]
 theorem coe_div : ∀ {x y : ℚ}, (↑(x / y) : ℚ_[p]) = ↑x / ↑y :=
   Rat.cast_div
 #align padic.coe_div Padic.coe_div
 
-/- warning: padic.coe_one -> Padic.coe_one is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Nat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Nat (Padic p _inst_1) (Nat.castCoe.{0} (Padic p _inst_1) (AddMonoidWithOne.toNatCast.{0} (Padic p _inst_1) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p _inst_1) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p _inst_1) (Ring.toAddCommGroupWithOne.{0} (Padic p _inst_1) (Padic.ring p _inst_1)))))))) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (OfNat.ofNat.{0} (Padic p _inst_1) 1 (OfNat.mk.{0} (Padic p _inst_1) 1 (One.one.{0} (Padic p _inst_1) (Padic.hasOne p _inst_1))))
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (OfNat.ofNat.{0} Rat 1 (Rat.instOfNatRat 1))) (OfNat.ofNat.{0} (Padic p _inst_1) 1 (One.toOfNat1.{0} (Padic p _inst_1) (Padic.instOnePadic p _inst_1)))
-Case conversion may be inaccurate. Consider using '#align padic.coe_one Padic.coe_oneₓ'. -/
 @[norm_cast]
 theorem coe_one : (↑1 : ℚ_[p]) = 1 :=
   rfl
 #align padic.coe_one Padic.coe_one
 
-/- warning: padic.coe_zero -> Padic.coe_zero is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Nat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Nat (Padic p _inst_1) (Nat.castCoe.{0} (Padic p _inst_1) (AddMonoidWithOne.toNatCast.{0} (Padic p _inst_1) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p _inst_1) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p _inst_1) (Ring.toAddCommGroupWithOne.{0} (Padic p _inst_1) (Padic.ring p _inst_1)))))))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (OfNat.ofNat.{0} (Padic p _inst_1) 0 (OfNat.mk.{0} (Padic p _inst_1) 0 (Zero.zero.{0} (Padic p _inst_1) (Padic.hasZero p _inst_1))))
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (OfNat.ofNat.{0} (Padic p _inst_1) 0 (Zero.toOfNat0.{0} (Padic p _inst_1) (Padic.instZeroPadic p _inst_1)))
-Case conversion may be inaccurate. Consider using '#align padic.coe_zero Padic.coe_zeroₓ'. -/
 @[norm_cast]
 theorem coe_zero : (↑0 : ℚ_[p]) = 0 :=
   rfl
@@ -806,12 +590,6 @@ end Completion
 
 end Padic
 
-/- warning: padic_norm_e -> padicNormE is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], AbsoluteValue.{0, 0} (Padic p hp) Rat (Ring.toSemiring.{0} (Padic p hp) (Padic.ring p hp)) Rat.orderedSemiring
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], AbsoluteValue.{0, 0} (Padic p hp) Rat (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))) Rat.instOrderedSemiringRat
-Case conversion may be inaccurate. Consider using '#align padic_norm_e padicNormEₓ'. -/
 /-- The rational-valued `p`-adic norm on `ℚ_[p]` is lifted from the norm on Cauchy sequences. The
 canonical form of this function is the normed space instance, with notation `‖ ‖`. -/
 def padicNormE {p : ℕ} [hp : Fact p.Prime] : AbsoluteValue ℚ_[p] ℚ
@@ -840,12 +618,6 @@ open PadicSeq
 
 variable {p : ℕ} [Fact p.Prime]
 
-/- warning: padic_norm_e.defn -> padicNormE.defn is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p) {ε : Rat}, (LT.lt.{0} Rat Rat.hasLt (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat Nat.hasLe i N) -> (LT.lt.{0} Rat Rat.hasLt (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) (Quotient.mk'.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1)) f) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f i)))) ε)))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p) {ε : Rat}, (LT.lt.{0} Rat Rat.instLTRat_1 (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat instLENat i N) -> (LT.lt.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) (Padic.mk p _inst_1 f) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f i)))) Rat.instLTRat_1 (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) (Padic.mk p _inst_1 f) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f i)))) ε)))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.defn padicNormE.defnₓ'. -/
 theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) : ∃ N, ∀ i ≥ N, padicNormE (⟦f⟧ - f i) < ε :=
   by
   dsimp [padicNormE]
@@ -864,21 +636,12 @@ theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) : ∃ N, ∀ i ≥ N, pa
     exact hN _ le_rfl _ hi
 #align padic_norm_e.defn padicNormE.defn
 
-/- warning: padic_norm_e.nonarchimedean' -> padicNormE.nonarchimedean' is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) (r : Padic p _inst_1), LE.le.{0} Rat Rat.hasLe (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.hasAdd p _inst_1)) q r)) (LinearOrder.max.{0} Rat Rat.linearOrder (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) q) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) r))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) (r : Padic p _inst_1), LE.le.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.instAddPadic p _inst_1)) q r)) Rat.instLERat (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.instAddPadic p _inst_1)) q r)) (Max.max.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) (LinearOrderedRing.toMax.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) Rat.instLinearOrderedRingRat) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) q) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) r))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.nonarchimedean' padicNormE.nonarchimedean'ₓ'. -/
 /-- Theorems about `padic_norm_e` are named with a `'` so the names do not conflict with the
 equivalent theorems about `norm` (`‖ ‖`). -/
 theorem nonarchimedean' (q r : ℚ_[p]) : padicNormE (q + r) ≤ max (padicNormE q) (padicNormE r) :=
   Quotient.induction_on₂ q r <| norm_nonarchimedean
 #align padic_norm_e.nonarchimedean' padicNormE.nonarchimedean'
 
-/- warning: padic_norm_e.add_eq_max_of_ne' -> padicNormE.add_eq_max_of_ne' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.add_eq_max_of_ne' padicNormE.add_eq_max_of_ne'ₓ'. -/
 /-- Theorems about `padic_norm_e` are named with a `'` so the names do not conflict with the
 equivalent theorems about `norm` (`‖ ‖`). -/
 theorem add_eq_max_of_ne' {q r : ℚ_[p]} :
@@ -886,23 +649,11 @@ theorem add_eq_max_of_ne' {q r : ℚ_[p]} :
   Quotient.induction_on₂ q r fun _ _ => PadicSeq.add_eq_max_of_ne
 #align padic_norm_e.add_eq_max_of_ne' padicNormE.add_eq_max_of_ne'
 
-/- warning: padic_norm_e.eq_padic_norm' -> padicNormE.eq_padic_norm' is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Rat), Eq.{1} Rat (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) q)) (padicNorm p q)
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Rat), Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) q)) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) q)) (padicNorm p q)
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.eq_padic_norm' padicNormE.eq_padic_norm'ₓ'. -/
 @[simp]
 theorem eq_padic_norm' (q : ℚ) : padicNormE (q : ℚ_[p]) = padicNorm p q :=
   norm_const _
 #align padic_norm_e.eq_padic_norm' padicNormE.eq_padic_norm'
 
-/- warning: padic_norm_e.image' -> padicNormE.image' is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Padic p _inst_1}, (Ne.{1} (Padic p _inst_1) q (OfNat.ofNat.{0} (Padic p _inst_1) 0 (OfNat.mk.{0} (Padic p _inst_1) 0 (Zero.zero.{0} (Padic p _inst_1) (Padic.hasZero p _inst_1))))) -> (Exists.{1} Int (fun (n : Int) => Eq.{1} Rat (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) q) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Rat (HasLiftT.mk.{1, 1} Nat Rat (CoeTCₓ.coe.{1, 1} Nat Rat (Nat.castCoe.{0} Rat (AddMonoidWithOne.toNatCast.{0} Rat (AddGroupWithOne.toAddMonoidWithOne.{0} Rat (AddCommGroupWithOne.toAddGroupWithOne.{0} Rat (Ring.toAddCommGroupWithOne.{0} Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField)))))))))) p) (Neg.neg.{0} Int Int.hasNeg n))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Padic p _inst_1}, (Ne.{1} (Padic p _inst_1) q (OfNat.ofNat.{0} (Padic p _inst_1) 0 (Zero.toOfNat0.{0} (Padic p _inst_1) (Padic.instZeroPadic p _inst_1)))) -> (Exists.{1} Int (fun (n : Int) => Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) q) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) (Nat.cast.{0} Rat (Semiring.toNatCast.{0} Rat Rat.semiring) p) (Neg.neg.{0} Int Int.instNegInt n))))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.image' padicNormE.image'ₓ'. -/
 protected theorem image' {q : ℚ_[p]} : q ≠ 0 → ∃ n : ℤ, padicNormE q = p ^ (-n) :=
   Quotient.inductionOn q fun f hf =>
     have : ¬f ≈ 0 := (ne_zero_iff_nequiv_zero f).1 hf
@@ -921,12 +672,6 @@ open PadicSeq Padic
 
 variable {p : ℕ} [Fact p.Prime] (f : CauSeq _ (@padicNormE p _))
 
-/- warning: padic.rat_dense' -> Padic.rat_dense' is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) {ε : Rat}, (LT.lt.{0} Rat Rat.hasLt (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))) ε) -> (Exists.{1} Rat (fun (r : Rat) => LT.lt.{0} Rat Rat.hasLt (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) q ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) r))) ε))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) {ε : Rat}, (LT.lt.{0} Rat Rat.instLTRat_1 (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)) ε) -> (Exists.{1} Rat (fun (r : Rat) => LT.lt.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) q (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) r))) Rat.instLTRat_1 (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) q (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) r))) ε))
-Case conversion may be inaccurate. Consider using '#align padic.rat_dense' Padic.rat_dense'ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (m n «expr ≥ » N) -/
 theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicNormE (q - r) < ε :=
   Quotient.inductionOn q fun q' =>
@@ -952,20 +697,11 @@ open Classical
 private theorem div_nat_pos (n : ℕ) : 0 < 1 / (n + 1 : ℚ) :=
   div_pos zero_lt_one (by exact_mod_cast succ_pos _)
 
-/- warning: padic.lim_seq -> Padic.limSeq is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)], (CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) -> Nat -> Rat
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)], (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1))) -> Nat -> Rat
-Case conversion may be inaccurate. Consider using '#align padic.lim_seq Padic.limSeqₓ'. -/
 /-- `lim_seq f`, for `f` a Cauchy sequence of `p`-adic numbers, is a sequence of rationals with the
 same limit point as `f`. -/
 def limSeq : ℕ → ℚ := fun n => Classical.choose (rat_dense' (f n) (div_nat_pos n))
 #align padic.lim_seq Padic.limSeq
 
-/- warning: padic.exi_rat_seq_conv -> Padic.exi_rat_seq_conv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align padic.exi_rat_seq_conv Padic.exi_rat_seq_convₓ'. -/
 theorem exi_rat_seq_conv {ε : ℚ} (hε : 0 < ε) :
     ∃ N, ∀ i ≥ N, padicNormE (f i - (limSeq f i : ℚ_[p])) < ε :=
   by
@@ -978,12 +714,6 @@ theorem exi_rat_seq_conv {ε : ℚ} (hε : 0 < ε) :
   · apply le_of_lt; simpa
 #align padic.exi_rat_seq_conv Padic.exi_rat_seq_conv
 
-/- warning: padic.exi_rat_seq_conv_cauchy -> Padic.exi_rat_seq_conv_cauchy is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))), IsCauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (Padic.limSeq p _inst_1 f)
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1))), IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (Padic.limSeq p _inst_1 f)
-Case conversion may be inaccurate. Consider using '#align padic.exi_rat_seq_conv_cauchy Padic.exi_rat_seq_conv_cauchyₓ'. -/
 theorem exi_rat_seq_conv_cauchy : IsCauSeq (padicNorm p) (limSeq f) := fun ε hε =>
   by
   have hε3 : 0 < ε / 3 := div_pos hε (by norm_num)
@@ -1022,9 +752,6 @@ private def lim' : PadicSeq p :=
 private def lim : ℚ_[p] :=
   ⟦lim' f⟧
 
-/- warning: padic.complete' -> Padic.complete' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align padic.complete' Padic.complete'ₓ'. -/
 theorem complete' : ∃ q : ℚ_[p], ∀ ε > 0, ∃ N, ∀ i ≥ N, padicNormE (q - f i) < ε :=
   ⟨limUnder f, fun ε hε =>
     by
@@ -1072,12 +799,6 @@ instance : NormedField ℚ_[p] :=
     norm_mul' := by simp [Norm.norm, map_mul]
     norm := norm }
 
-/- warning: padic.is_absolute_value -> Padic.isAbsoluteValue is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], IsAbsoluteValue.{0, 0} Real Real.orderedSemiring (Padic p _inst_1) (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) (fun (a : Padic p _inst_1) => Norm.norm.{0} (Padic p _inst_1) (Padic.hasNorm p _inst_1) a)
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], IsAbsoluteValue.{0, 0} Real Real.orderedSemiring (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) (fun (a : Padic p _inst_1) => Norm.norm.{0} (Padic p _inst_1) (Padic.instNormPadic p _inst_1) a)
-Case conversion may be inaccurate. Consider using '#align padic.is_absolute_value Padic.isAbsoluteValueₓ'. -/
 instance isAbsoluteValue : IsAbsoluteValue fun a : ℚ_[p] => ‖a‖
     where
   abv_nonneg := norm_nonneg
@@ -1086,12 +807,6 @@ instance isAbsoluteValue : IsAbsoluteValue fun a : ℚ_[p] => ‖a‖
   abv_mul := by simp [Norm.norm, map_mul]
 #align padic.is_absolute_value Padic.isAbsoluteValue
 
-/- warning: padic.rat_dense -> Padic.rat_dense is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) {ε : 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} Rat (fun (r : Rat) => LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p _inst_1) (Padic.hasNorm p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) q ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (NormedDivisionRing.toDivisionRing.{0} (Padic p _inst_1) (NormedField.toNormedDivisionRing.{0} (Padic p _inst_1) (Padic.normedField p _inst_1))))))) r))) ε))
-but is expected to have type
-  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (Exists.{1} Rat (fun (r : Rat) => LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p _inst_1) (Padic.instNormPadic p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) q (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) r))) ε))
-Case conversion may be inaccurate. Consider using '#align padic.rat_dense Padic.rat_denseₓ'. -/
 theorem rat_dense (q : ℚ_[p]) {ε : ℝ} (hε : 0 < ε) : ∃ r : ℚ, ‖q - r‖ < ε :=
   let ⟨ε', hε'l, hε'r⟩ := exists_rat_btwn hε
   let ⟨r, hr⟩ := rat_dense' q (by simpa using hε'l)
@@ -1110,44 +825,20 @@ variable {p : ℕ} [hp : Fact p.Prime]
 
 include hp
 
-/- warning: padic_norm_e.mul -> padicNormE.mul is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp) (r : Padic p hp), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.hasMul p hp)) q r)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) r))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp) (r : Padic p hp), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.instMulPadic p hp)) q r)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) r))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.mul padicNormE.mulₓ'. -/
 @[simp]
 protected theorem mul (q r : ℚ_[p]) : ‖q * r‖ = ‖q‖ * ‖r‖ := by simp [Norm.norm, map_mul]
 #align padic_norm_e.mul padicNormE.mul
 
-/- warning: padic_norm_e.is_norm -> padicNormE.is_norm is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Eq.{1} Real ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p hp) Rat (Ring.toSemiring.{0} (Padic p hp) (Padic.ring p hp)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p hp) Rat (Ring.toSemiring.{0} (Padic p hp) (Padic.ring p hp)) Rat.orderedSemiring) => (Padic p hp) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p hp) Rat (Ring.toSemiring.{0} (Padic p hp) (Padic.ring p hp)) Rat.orderedSemiring) (padicNormE p hp) q)) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q)
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Eq.{1} Real (Rat.cast.{0} Real Real.ratCast (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p hp) Rat (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))) Rat.instOrderedSemiringRat) (Padic p hp) (fun (f : Padic p hp) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p hp) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p hp) Rat (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))) Rat.instOrderedSemiringRat) (Padic p hp) Rat (Distrib.toAdd.{0} (Padic p hp) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p hp) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p hp) (Semiring.toNonAssocSemiring.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p hp) Rat (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))) Rat.instOrderedSemiringRat)) (padicNormE p hp) q)) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q)
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.is_norm padicNormE.is_normₓ'. -/
 protected theorem is_norm (q : ℚ_[p]) : ↑(padicNormE q) = ‖q‖ :=
   rfl
 #align padic_norm_e.is_norm padicNormE.is_norm
 
-/- warning: padic_norm_e.nonarchimedean -> padicNormE.nonarchimedean is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp) (r : Padic p hp), LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) q r)) (LinearOrder.max.{0} Real Real.linearOrder (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) r))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp) (r : Padic p hp), LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) q r)) (Max.max.{0} Real (LinearOrderedRing.toMax.{0} Real Real.instLinearOrderedRingReal) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) r))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.nonarchimedean padicNormE.nonarchimedeanₓ'. -/
 theorem nonarchimedean (q r : ℚ_[p]) : ‖q + r‖ ≤ max ‖q‖ ‖r‖ :=
   by
   unfold Norm.norm
   exact_mod_cast nonarchimedean' _ _
 #align padic_norm_e.nonarchimedean padicNormE.nonarchimedean
 
-/- warning: padic_norm_e.add_eq_max_of_ne -> padicNormE.add_eq_max_of_ne is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {q : Padic p hp} {r : Padic p hp}, (Ne.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) r)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) q r)) (LinearOrder.max.{0} Real Real.linearOrder (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) r)))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {q : Padic p hp} {r : Padic p hp}, (Ne.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) r)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) q r)) (Max.max.{0} Real (LinearOrderedRing.toMax.{0} Real Real.instLinearOrderedRingReal) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) r)))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.add_eq_max_of_ne padicNormE.add_eq_max_of_neₓ'. -/
 theorem add_eq_max_of_ne {q r : ℚ_[p]} (h : ‖q‖ ≠ ‖r‖) : ‖q + r‖ = max ‖q‖ ‖r‖ :=
   by
   unfold Norm.norm
@@ -1158,12 +849,6 @@ theorem add_eq_max_of_ne {q r : ℚ_[p]} (h : ‖q‖ ≠ ‖r‖) : ‖q + r‖
   exact_mod_cast h'
 #align padic_norm_e.add_eq_max_of_ne padicNormE.add_eq_max_of_ne
 
-/- warning: padic_norm_e.eq_padic_norm -> padicNormE.eq_padicNorm is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Rat), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp) (HasLiftT.mk.{1, 1} Rat (Padic p hp) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp) (Rat.castCoe.{0} (Padic p hp) (DivisionRing.toHasRatCast.{0} (Padic p hp) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp) (NormedField.toNormedDivisionRing.{0} (Padic p hp) (Padic.normedField p hp))))))) q)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) (padicNorm p q))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Rat), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Rat.cast.{0} (Padic p hp) (Field.toRatCast.{0} (Padic p hp) (Padic.field p hp)) q)) (Rat.cast.{0} Real Real.ratCast (padicNorm p q))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.eq_padic_norm padicNormE.eq_padicNormₓ'. -/
 @[simp]
 theorem eq_padicNorm (q : ℚ) : ‖(q : ℚ_[p])‖ = padicNorm p q :=
   by
@@ -1171,12 +856,6 @@ theorem eq_padicNorm (q : ℚ) : ‖(q : ℚ_[p])‖ = padicNorm p q :=
   rw [← padicNormE.eq_padic_norm']
 #align padic_norm_e.eq_padic_norm padicNormE.eq_padicNorm
 
-/- warning: padic_norm_e.norm_p -> padicNormE.norm_p is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p hp) (HasLiftT.mk.{1, 1} Nat (Padic p hp) (CoeTCₓ.coe.{1, 1} Nat (Padic p hp) (Nat.castCoe.{0} (Padic p hp) (AddMonoidWithOne.toNatCast.{0} (Padic p hp) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp)))))))) p)) (Inv.inv.{0} Real Real.hasInv ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Nat.cast.{0} (Padic p hp) (Semiring.toNatCast.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp))))) p)) (Inv.inv.{0} Real Real.instInvReal (Nat.cast.{0} Real Real.natCast p))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_p padicNormE.norm_pₓ'. -/
 @[simp]
 theorem norm_p : ‖(p : ℚ_[p])‖ = p⁻¹ :=
   by
@@ -1187,12 +866,6 @@ theorem norm_p : ‖(p : ℚ_[p])‖ = p⁻¹ :=
   simp [p₀, p₁, norm, padicNorm, padicValRat, padicValInt, zpow_neg, -Rat.cast_coe_nat]
 #align padic_norm_e.norm_p padicNormE.norm_p
 
-/- warning: padic_norm_e.norm_p_lt_one -> padicNormE.norm_p_lt_one is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p hp) (HasLiftT.mk.{1, 1} Nat (Padic p hp) (CoeTCₓ.coe.{1, 1} Nat (Padic p hp) (Nat.castCoe.{0} (Padic p hp) (AddMonoidWithOne.toNatCast.{0} (Padic p hp) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp)))))))) p)) (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 : Fact (Nat.Prime p)], LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Nat.cast.{0} (Padic p hp) (Semiring.toNatCast.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp))))) p)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_p_lt_one padicNormE.norm_p_lt_oneₓ'. -/
 theorem norm_p_lt_one : ‖(p : ℚ_[p])‖ < 1 :=
   by
   rw [norm_p]
@@ -1200,23 +873,11 @@ theorem norm_p_lt_one : ‖(p : ℚ_[p])‖ < 1 :=
   exact_mod_cast hp.1.one_lt
 #align padic_norm_e.norm_p_lt_one padicNormE.norm_p_lt_one
 
-/- warning: padic_norm_e.norm_p_zpow -> padicNormE.norm_p_zpow is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (n : Int), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HPow.hPow.{0, 0, 0} (Padic p hp) Int (Padic p hp) (instHPow.{0, 0} (Padic p hp) Int (DivInvMonoid.Pow.{0} (Padic p hp) (DivisionRing.toDivInvMonoid.{0} (Padic p hp) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp) (NormedField.toNormedDivisionRing.{0} (Padic p hp) (Padic.normedField p hp)))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p hp) (HasLiftT.mk.{1, 1} Nat (Padic p hp) (CoeTCₓ.coe.{1, 1} Nat (Padic p hp) (Nat.castCoe.{0} (Padic p hp) (AddMonoidWithOne.toNatCast.{0} (Padic p hp) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp)))))))) p) n)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (Neg.neg.{0} Int Int.hasNeg n))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (n : Int), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HPow.hPow.{0, 0, 0} (Padic p hp) Int (Padic p hp) (instHPow.{0, 0} (Padic p hp) Int (DivInvMonoid.Pow.{0} (Padic p hp) (DivisionRing.toDivInvMonoid.{0} (Padic p hp) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp) (NormedField.toNormedDivisionRing.{0} (Padic p hp) (Padic.normedField p hp)))))) (Nat.cast.{0} (Padic p hp) (Semiring.toNatCast.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp))))) p) n)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (Neg.neg.{0} Int Int.instNegInt n))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_p_zpow padicNormE.norm_p_zpowₓ'. -/
 @[simp]
 theorem norm_p_zpow (n : ℤ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n) := by
   rw [norm_zpow, norm_p, zpow_neg, inv_zpow]
 #align padic_norm_e.norm_p_zpow padicNormE.norm_p_zpow
 
-/- warning: padic_norm_e.norm_p_pow -> padicNormE.norm_p_pow is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (n : Nat), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HPow.hPow.{0, 0, 0} (Padic p hp) Nat (Padic p hp) (instHPow.{0, 0} (Padic p hp) Nat (Monoid.Pow.{0} (Padic p hp) (Ring.toMonoid.{0} (Padic p hp) (Padic.ring p hp)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p hp) (HasLiftT.mk.{1, 1} Nat (Padic p hp) (CoeTCₓ.coe.{1, 1} Nat (Padic p hp) (Nat.castCoe.{0} (Padic p hp) (AddMonoidWithOne.toNatCast.{0} (Padic p hp) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp)))))))) p) n)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (n : Nat), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HPow.hPow.{0, 0, 0} (Padic p hp) Nat (Padic p hp) (instHPow.{0, 0} (Padic p hp) Nat (Monoid.Pow.{0} (Padic p hp) (MonoidWithZero.toMonoid.{0} (Padic p hp) (Semiring.toMonoidWithZero.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))))))) (Nat.cast.{0} (Padic p hp) (Semiring.toNatCast.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp))))) p) n)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int instNatCastInt n)))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_p_pow padicNormE.norm_p_powₓ'. -/
 @[simp]
 theorem norm_p_pow (n : ℕ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n : ℤ) := by rw [← norm_p_zpow, zpow_ofNat]
 #align padic_norm_e.norm_p_pow padicNormE.norm_p_pow
@@ -1228,12 +889,6 @@ instance : NontriviallyNormedField ℚ_[p] :=
         rw [norm_inv, norm_p, inv_inv]
         exact_mod_cast hp.1.one_lt⟩ }
 
-/- warning: padic_norm_e.image -> padicNormE.image is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {q : Padic p hp}, (Ne.{1} (Padic p hp) q (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (Exists.{1} Int (fun (n : Int) => Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Rat (HasLiftT.mk.{1, 1} Nat Rat (CoeTCₓ.coe.{1, 1} Nat Rat (Nat.castCoe.{0} Rat (AddMonoidWithOne.toNatCast.{0} Rat (AddGroupWithOne.toAddMonoidWithOne.{0} Rat (AddCommGroupWithOne.toAddGroupWithOne.{0} Rat (Ring.toAddCommGroupWithOne.{0} Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField)))))))))) p) (Neg.neg.{0} Int Int.hasNeg n)))))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {q : Padic p hp}, (Ne.{1} (Padic p hp) q (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (Exists.{1} Int (fun (n : Int) => Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Rat.cast.{0} Real Real.ratCast (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) (Nat.cast.{0} Rat (Semiring.toNatCast.{0} Rat Rat.semiring) p) (Neg.neg.{0} Int Int.instNegInt n)))))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.image padicNormE.imageₓ'. -/
 protected theorem image {q : ℚ_[p]} : q ≠ 0 → ∃ n : ℤ, ‖q‖ = ↑((p : ℚ) ^ (-n)) :=
   Quotient.inductionOn q fun f hf =>
     have : ¬f ≈ 0 := (PadicSeq.ne_zero_iff_nequiv_zero f).1 hf
@@ -1241,12 +896,6 @@ protected theorem image {q : ℚ_[p]} : q ≠ 0 → ∃ n : ℤ, ‖q‖ = ↑((
     ⟨n, congr_arg coe hn⟩
 #align padic_norm_e.image padicNormE.image
 
-/- warning: padic_norm_e.is_rat -> padicNormE.is_rat is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Exists.{1} Rat (fun (q' : Rat) => Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) q'))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Exists.{1} Rat (fun (q' : Rat) => Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Rat.cast.{0} Real Real.ratCast q'))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.is_rat padicNormE.is_ratₓ'. -/
 protected theorem is_rat (q : ℚ_[p]) : ∃ q' : ℚ, ‖q‖ = q' :=
   if h : q = 0 then ⟨0, by simp [h]⟩
   else
@@ -1263,22 +912,10 @@ def ratNorm (q : ℚ_[p]) : ℚ :=
 #align padic_norm_e.rat_norm padicNormE.ratNorm
 -/
 
-/- warning: padic_norm_e.eq_rat_norm -> padicNormE.eq_ratNorm is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) (padicNormE.ratNorm p hp q))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Rat.cast.{0} Real Real.ratCast (padicNormE.ratNorm p hp q))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.eq_rat_norm padicNormE.eq_ratNormₓ'. -/
 theorem eq_ratNorm (q : ℚ_[p]) : ‖q‖ = ratNorm q :=
   Classical.choose_spec (padicNormE.is_rat q)
 #align padic_norm_e.eq_rat_norm padicNormE.eq_ratNorm
 
-/- warning: padic_norm_e.norm_rat_le_one -> padicNormE.norm_rat_le_one is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {q : Rat}, (Not (Dvd.Dvd.{0} Nat Nat.hasDvd p (Rat.den q))) -> (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp) (HasLiftT.mk.{1, 1} Rat (Padic p hp) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp) (Rat.castCoe.{0} (Padic p hp) (DivisionRing.toHasRatCast.{0} (Padic p hp) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp) (NormedField.toNormedDivisionRing.{0} (Padic p hp) (Padic.normedField p hp))))))) q)) (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 : Fact (Nat.Prime p)] {q : Rat}, (Not (Dvd.dvd.{0} Nat Nat.instDvdNat p (Rat.den q))) -> (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Rat.cast.{0} (Padic p hp) (Field.toRatCast.{0} (Padic p hp) (Padic.field p hp)) q)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_rat_le_one padicNormE.norm_rat_le_oneₓ'. -/
 theorem norm_rat_le_one : ∀ {q : ℚ} (hq : ¬p ∣ q.den), ‖(q : ℚ_[p])‖ ≤ 1
   | ⟨n, d, hn, hd⟩ => fun hq : ¬p ∣ d =>
     if hnz : n = 0 then
@@ -1304,23 +941,11 @@ theorem norm_rat_le_one : ∀ {q : ℚ} (hq : ¬p ∣ q.den), ‖(q : ℚ_[p])
         exact hp.1.Pos
 #align padic_norm_e.norm_rat_le_one padicNormE.norm_rat_le_one
 
-/- warning: padic_norm_e.norm_int_le_one -> padicNormE.norm_int_le_one is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (z : Int), LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (Padic p hp) (HasLiftT.mk.{1, 1} Int (Padic p hp) (CoeTCₓ.coe.{1, 1} Int (Padic p hp) (Int.castCoe.{0} (Padic p hp) (AddGroupWithOne.toHasIntCast.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp))))))) z)) (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 : Fact (Nat.Prime p)] (z : Int), LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Int.cast.{0} (Padic p hp) (Ring.toIntCast.{0} (Padic p hp) (Padic.instRingPadic p hp)) z)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_int_le_one padicNormE.norm_int_le_oneₓ'. -/
 theorem norm_int_le_one (z : ℤ) : ‖(z : ℚ_[p])‖ ≤ 1 :=
   suffices ‖((z : ℚ) : ℚ_[p])‖ ≤ 1 by simpa
   norm_rat_le_one <| by simp [hp.1.ne_one]
 #align padic_norm_e.norm_int_le_one padicNormE.norm_int_le_one
 
-/- warning: padic_norm_e.norm_int_lt_one_iff_dvd -> padicNormE.norm_int_lt_one_iff_dvd is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (k : Int), Iff (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (Padic p hp) (HasLiftT.mk.{1, 1} Int (Padic p hp) (CoeTCₓ.coe.{1, 1} Int (Padic p hp) (Int.castCoe.{0} (Padic p hp) (AddGroupWithOne.toHasIntCast.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp))))))) k)) (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) k)
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (k : Int), Iff (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Int.cast.{0} (Padic p hp) (Ring.toIntCast.{0} (Padic p hp) (Padic.instRingPadic p hp)) k)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (Dvd.dvd.{0} Int Int.instDvdInt (Nat.cast.{0} Int instNatCastInt p) k)
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_int_lt_one_iff_dvd padicNormE.norm_int_lt_one_iff_dvdₓ'. -/
 theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣ k :=
   by
   constructor
@@ -1358,12 +983,6 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
       exact_mod_cast hp.1.one_lt
 #align padic_norm_e.norm_int_lt_one_iff_dvd padicNormE.norm_int_lt_one_iff_dvd
 
-/- warning: padic_norm_e.norm_int_le_pow_iff_dvd -> padicNormE.norm_int_le_pow_iff_dvd is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (k : Int) (n : Nat), Iff (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (Padic p hp) (HasLiftT.mk.{1, 1} Int (Padic p hp) (CoeTCₓ.coe.{1, 1} Int (Padic p hp) (Int.castCoe.{0} (Padic p hp) (AddGroupWithOne.toHasIntCast.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp))))))) k)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (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))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) k)
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (k : Int) (n : Nat), Iff (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Int.cast.{0} (Padic p hp) (Ring.toIntCast.{0} (Padic p hp) (Padic.instRingPadic p hp)) k)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int instNatCastInt n)))) (Dvd.dvd.{0} Int Int.instDvdInt (Nat.cast.{0} Int instNatCastInt (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) k)
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_int_le_pow_iff_dvd padicNormE.norm_int_le_pow_iff_dvdₓ'. -/
 theorem norm_int_le_pow_iff_dvd (k : ℤ) (n : ℕ) : ‖(k : ℚ_[p])‖ ≤ ↑p ^ (-n : ℤ) ↔ ↑(p ^ n) ∣ k :=
   by
   have : (p : ℝ) ^ (-n : ℤ) = ↑(p ^ (-n : ℤ) : ℚ) := by simp
@@ -1372,23 +991,11 @@ theorem norm_int_le_pow_iff_dvd (k : ℤ) (n : ℕ) : ‖(k : ℚ_[p])‖ ≤ 
   rw [← padicNorm.dvd_iff_norm_le]
 #align padic_norm_e.norm_int_le_pow_iff_dvd padicNormE.norm_int_le_pow_iff_dvd
 
-/- warning: padic_norm_e.eq_of_norm_add_lt_right -> padicNormE.eq_of_norm_add_lt_right is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {z1 : Padic p hp} {z2 : Padic p hp}, (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) z1 z2)) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z2)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z1) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z2))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {z1 : Padic p hp} {z2 : Padic p hp}, (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) z1 z2)) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z2)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z1) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z2))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.eq_of_norm_add_lt_right padicNormE.eq_of_norm_add_lt_rightₓ'. -/
 theorem eq_of_norm_add_lt_right {z1 z2 : ℚ_[p]} (h : ‖z1 + z2‖ < ‖z2‖) : ‖z1‖ = ‖z2‖ :=
   by_contradiction fun hne =>
     not_lt_of_ge (by rw [padicNormE.add_eq_max_of_ne hne] <;> apply le_max_right) h
 #align padic_norm_e.eq_of_norm_add_lt_right padicNormE.eq_of_norm_add_lt_right
 
-/- warning: padic_norm_e.eq_of_norm_add_lt_left -> padicNormE.eq_of_norm_add_lt_left is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {z1 : Padic p hp} {z2 : Padic p hp}, (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) z1 z2)) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z1)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z1) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z2))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {z1 : Padic p hp} {z2 : Padic p hp}, (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) z1 z2)) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z1)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z1) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z2))
-Case conversion may be inaccurate. Consider using '#align padic_norm_e.eq_of_norm_add_lt_left padicNormE.eq_of_norm_add_lt_leftₓ'. -/
 theorem eq_of_norm_add_lt_left {z1 z2 : ℚ_[p]} (h : ‖z1 + z2‖ < ‖z1‖) : ‖z1‖ = ‖z2‖ :=
   by_contradiction fun hne =>
     not_lt_of_ge (by rw [padicNormE.add_eq_max_of_ne hne] <;> apply le_max_left) h
@@ -1407,12 +1014,6 @@ include hp
 /- ./././Mathport/Syntax/Translate/Basic.lean:334:40: warning: unsupported option eqn_compiler.zeta -/
 set_option eqn_compiler.zeta true
 
-/- warning: padic.complete -> Padic.complete is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], CauSeq.IsComplete.{0, 0} Real Real.linearOrderedField (Padic p hp) (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp)) (Padic.isAbsoluteValue p hp)
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], CauSeq.IsComplete.{0, 0} Real Real.instLinearOrderedFieldReal (Padic p hp) (Padic.instRingPadic p hp) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp)) (Padic.isAbsoluteValue p hp)
-Case conversion may be inaccurate. Consider using '#align padic.complete Padic.completeₓ'. -/
 instance complete : CauSeq.IsComplete ℚ_[p] norm :=
   by
   constructor; intro f
@@ -1435,12 +1036,6 @@ instance complete : CauSeq.IsComplete ℚ_[p] norm :=
   exact_mod_cast hN i hi
 #align padic.complete Padic.complete
 
-/- warning: padic.padic_norm_e_lim_le -> Padic.padicNormE_lim_le is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : CauSeq.{0, 0} Real Real.linearOrderedField (Padic p hp) (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp))} {a : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) a) -> (forall (i : Nat), LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (coeFn.{1, 1} (CauSeq.{0, 0} Real Real.linearOrderedField (Padic p hp) (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp))) (fun (_x : CauSeq.{0, 0} Real Real.linearOrderedField (Padic p hp) (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp))) => Nat -> (Padic p hp)) (CauSeq.hasCoeToFun.{0, 0} Real (Padic p hp) Real.linearOrderedField (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp))) f i)) a) -> (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (CauSeq.lim.{0, 0} Real Real.linearOrderedField (Padic p hp) (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp)) (Padic.isAbsoluteValue p hp) (Padic.complete p hp) f)) a)
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : CauSeq.{0, 0} Real Real.instLinearOrderedFieldReal (Padic p hp) (Padic.instRingPadic p hp) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp))} {a : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) a) -> (forall (i : Nat), LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Subtype.val.{1} (Nat -> (Padic p hp)) (fun (f : Nat -> (Padic p hp)) => IsCauSeq.{0, 0} Real Real.instLinearOrderedFieldReal (Padic p hp) (Padic.instRingPadic p hp) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp)) f) f i)) a) -> (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (CauSeq.lim.{0, 0} Real Real.instLinearOrderedFieldReal (Padic p hp) (Padic.instRingPadic p hp) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp)) (Padic.isAbsoluteValue p hp) (Padic.complete p hp) f)) a)
-Case conversion may be inaccurate. Consider using '#align padic.padic_norm_e_lim_le Padic.padicNormE_lim_leₓ'. -/
 theorem padicNormE_lim_le {f : CauSeq ℚ_[p] norm} {a : ℝ} (ha : 0 < a) (hf : ∀ i, ‖f i‖ ≤ a) :
     ‖f.lim‖ ≤ a :=
   let ⟨N, hN⟩ := Setoid.symm (CauSeq.equiv_lim f) _ ha
@@ -1481,23 +1076,11 @@ def valuation : ℚ_[p] → ℤ :=
 #align padic.valuation Padic.valuation
 -/
 
-/- warning: padic.valuation_zero -> Padic.valuation_zero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))
-Case conversion may be inaccurate. Consider using '#align padic.valuation_zero Padic.valuation_zeroₓ'. -/
 @[simp]
 theorem valuation_zero : valuation (0 : ℚ_[p]) = 0 :=
   dif_pos ((const_equiv p).2 rfl)
 #align padic.valuation_zero Padic.valuation_zero
 
-/- warning: padic.valuation_one -> Padic.valuation_one is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp (OfNat.ofNat.{0} (Padic p hp) 1 (OfNat.mk.{0} (Padic p hp) 1 (One.one.{0} (Padic p hp) (Padic.hasOne p hp))))) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp (OfNat.ofNat.{0} (Padic p hp) 1 (One.toOfNat1.{0} (Padic p hp) (Padic.instOnePadic p hp)))) (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))
-Case conversion may be inaccurate. Consider using '#align padic.valuation_one Padic.valuation_oneₓ'. -/
 @[simp]
 theorem valuation_one : valuation (1 : ℚ_[p]) = 0 :=
   by
@@ -1508,12 +1091,6 @@ theorem valuation_one : valuation (1 : ℚ_[p]) = 0 :=
   simp
 #align padic.valuation_one Padic.valuation_one
 
-/- warning: padic.norm_eq_pow_val -> Padic.norm_eq_pow_val is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (Neg.neg.{0} Int Int.hasNeg (Padic.valuation p hp x))))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (Neg.neg.{0} Int Int.instNegInt (Padic.valuation p hp x))))
-Case conversion may be inaccurate. Consider using '#align padic.norm_eq_pow_val Padic.norm_eq_pow_valₓ'. -/
 theorem norm_eq_pow_val {x : ℚ_[p]} : x ≠ 0 → ‖x‖ = p ^ (-x.Valuation) :=
   by
   apply Quotient.inductionOn' x; clear x
@@ -1528,12 +1105,6 @@ theorem norm_eq_pow_val {x : ℚ_[p]} : x ≠ 0 → ‖x‖ = p ^ (-x.Valuation)
     simpa using hf
 #align padic.norm_eq_pow_val Padic.norm_eq_pow_val
 
-/- warning: padic.valuation_p -> Padic.valuation_p is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p hp) (HasLiftT.mk.{1, 1} Nat (Padic p hp) (CoeTCₓ.coe.{1, 1} Nat (Padic p hp) (Nat.castCoe.{0} (Padic p hp) (AddMonoidWithOne.toNatCast.{0} (Padic p hp) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp)))))))) p)) (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp (Nat.cast.{0} (Padic p hp) (Semiring.toNatCast.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp))))) p)) (OfNat.ofNat.{0} Int 1 (instOfNatInt 1))
-Case conversion may be inaccurate. Consider using '#align padic.valuation_p Padic.valuation_pₓ'. -/
 @[simp]
 theorem valuation_p : valuation (p : ℚ_[p]) = 1 :=
   by
@@ -1543,12 +1114,6 @@ theorem valuation_p : valuation (p : ℚ_[p]) = 1 :=
   · simp
 #align padic.valuation_p Padic.valuation_p
 
-/- warning: padic.valuation_map_add -> Padic.valuation_map_add is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp} {y : Padic p hp}, (Ne.{1} (Padic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) x y) (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (LE.le.{0} Int Int.hasLe (LinearOrder.min.{0} Int Int.linearOrder (Padic.valuation p hp x) (Padic.valuation p hp y)) (Padic.valuation p hp (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) x y)))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp} {y : Padic p hp}, (Ne.{1} (Padic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) x y) (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (LE.le.{0} Int Int.instLEInt (Min.min.{0} Int Int.instMinInt (Padic.valuation p hp x) (Padic.valuation p hp y)) (Padic.valuation p hp (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) x y)))
-Case conversion may be inaccurate. Consider using '#align padic.valuation_map_add Padic.valuation_map_addₓ'. -/
 theorem valuation_map_add {x y : ℚ_[p]} (hxy : x + y ≠ 0) :
     min (valuation x) (valuation y) ≤ valuation (x + y) :=
   by
@@ -1566,12 +1131,6 @@ theorem valuation_map_add {x y : ℚ_[p]} (hxy : x + y ≠ 0) :
         zpow_le_max_iff_min_le hp_one] at h_norm
 #align padic.valuation_map_add Padic.valuation_map_add
 
-/- warning: padic.valuation_map_mul -> Padic.valuation_map_mul is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp} {y : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (Ne.{1} (Padic p hp) y (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (Eq.{1} Int (Padic.valuation p hp (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.hasMul p hp)) x y)) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) (Padic.valuation p hp x) (Padic.valuation p hp y)))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp} {y : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (Ne.{1} (Padic p hp) y (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (Eq.{1} Int (Padic.valuation p hp (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.instMulPadic p hp)) x y)) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Padic.valuation p hp x) (Padic.valuation p hp y)))
-Case conversion may be inaccurate. Consider using '#align padic.valuation_map_mul Padic.valuation_map_mulₓ'. -/
 @[simp]
 theorem valuation_map_mul {x y : ℚ_[p]} (hx : x ≠ 0) (hy : y ≠ 0) :
     valuation (x * y) = valuation x + valuation y :=
@@ -1595,34 +1154,16 @@ def addValuationDef : ℚ_[p] → WithTop ℤ := fun x => if x = 0 then ⊤ else
 #align padic.add_valuation_def Padic.addValuationDef
 -/
 
-/- warning: padic.add_valuation.map_zero -> Padic.AddValuation.map_zero is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) (Top.top.{0} (WithTop.{0} Int) (WithTop.hasTop.{0} Int))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) (Top.top.{0} (WithTop.{0} Int) (WithTop.top.{0} Int))
-Case conversion may be inaccurate. Consider using '#align padic.add_valuation.map_zero Padic.AddValuation.map_zeroₓ'. -/
 @[simp]
 theorem AddValuation.map_zero : addValuationDef (0 : ℚ_[p]) = ⊤ := by
   simp only [add_valuation_def, if_pos (Eq.refl _)]
 #align padic.add_valuation.map_zero Padic.AddValuation.map_zero
 
-/- warning: padic.add_valuation.map_one -> Padic.AddValuation.map_one is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (OfNat.ofNat.{0} (Padic p hp) 1 (OfNat.mk.{0} (Padic p hp) 1 (One.one.{0} (Padic p hp) (Padic.hasOne p hp))))) (OfNat.ofNat.{0} (WithTop.{0} Int) 0 (OfNat.mk.{0} (WithTop.{0} Int) 0 (Zero.zero.{0} (WithTop.{0} Int) (WithTop.zero.{0} Int Int.hasZero))))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (OfNat.ofNat.{0} (Padic p hp) 1 (One.toOfNat1.{0} (Padic p hp) (Padic.instOnePadic p hp)))) (OfNat.ofNat.{0} (WithTop.{0} Int) 0 (Zero.toOfNat0.{0} (WithTop.{0} Int) (WithTop.zero.{0} Int (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.add_valuation.map_one Padic.AddValuation.map_oneₓ'. -/
 @[simp]
 theorem AddValuation.map_one : addValuationDef (1 : ℚ_[p]) = 0 := by
   simp only [add_valuation_def, if_neg one_ne_zero, valuation_one, WithTop.coe_zero]
 #align padic.add_valuation.map_one Padic.AddValuation.map_one
 
-/- warning: padic.add_valuation.map_mul -> Padic.AddValuation.map_mul is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (y : Padic p hp), Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.hasMul p hp)) x y)) (HAdd.hAdd.{0, 0, 0} (WithTop.{0} Int) (WithTop.{0} Int) (WithTop.{0} Int) (instHAdd.{0} (WithTop.{0} Int) (WithTop.add.{0} Int Int.hasAdd)) (Padic.addValuationDef p hp x) (Padic.addValuationDef p hp y))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (y : Padic p hp), Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.instMulPadic p hp)) x y)) (HAdd.hAdd.{0, 0, 0} (WithTop.{0} Int) (WithTop.{0} Int) (WithTop.{0} Int) (instHAdd.{0} (WithTop.{0} Int) (WithTop.add.{0} Int Int.instAddInt)) (Padic.addValuationDef p hp x) (Padic.addValuationDef p hp y))
-Case conversion may be inaccurate. Consider using '#align padic.add_valuation.map_mul Padic.AddValuation.map_mulₓ'. -/
 theorem AddValuation.map_mul (x y : ℚ_[p]) :
     addValuationDef (x * y) = addValuationDef x + addValuationDef y :=
   by
@@ -1636,12 +1177,6 @@ theorem AddValuation.map_mul (x y : ℚ_[p]) :
         valuation_map_mul hx hy]
 #align padic.add_valuation.map_mul Padic.AddValuation.map_mul
 
-/- warning: padic.add_valuation.map_add -> Padic.AddValuation.map_add is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (y : Padic p hp), LE.le.{0} (WithTop.{0} Int) (Preorder.toHasLe.{0} (WithTop.{0} Int) (WithTop.preorder.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) (LinearOrder.min.{0} (WithTop.{0} Int) (WithTop.linearOrder.{0} Int Int.linearOrder) (Padic.addValuationDef p hp x) (Padic.addValuationDef p hp y)) (Padic.addValuationDef p hp (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) x y))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (y : Padic p hp), LE.le.{0} (WithTop.{0} Int) (Preorder.toLE.{0} (WithTop.{0} Int) (WithTop.preorder.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) (Min.min.{0} (WithTop.{0} Int) (LinearOrder.toMin.{0} (WithTop.{0} Int) (WithTop.linearOrder.{0} Int Int.instLinearOrderInt)) (Padic.addValuationDef p hp x) (Padic.addValuationDef p hp y)) (Padic.addValuationDef p hp (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) x y))
-Case conversion may be inaccurate. Consider using '#align padic.add_valuation.map_add Padic.AddValuation.map_addₓ'. -/
 theorem AddValuation.map_add (x y : ℚ_[p]) :
     min (addValuationDef x) (addValuationDef y) ≤ addValuationDef (x + y) :=
   by
@@ -1657,24 +1192,12 @@ theorem AddValuation.map_add (x y : ℚ_[p]) :
         exact valuation_map_add hxy
 #align padic.add_valuation.map_add Padic.AddValuation.map_add
 
-/- warning: padic.add_valuation -> Padic.addValuation is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], AddValuation.{0, 0} (Padic p hp) (Padic.ring p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedRing.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)], AddValuation.{0, 0} (Padic p hp) (Padic.instRingPadic p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))
-Case conversion may be inaccurate. Consider using '#align padic.add_valuation Padic.addValuationₓ'. -/
 /-- The additive `p`-adic valuation on `ℚ_[p]`, as an `add_valuation`. -/
 def addValuation : AddValuation ℚ_[p] (WithTop ℤ) :=
   AddValuation.of addValuationDef AddValuation.map_zero AddValuation.map_one AddValuation.map_add
     AddValuation.map_mul
 #align padic.add_valuation Padic.addValuation
 
-/- warning: padic.add_valuation.apply -> Padic.addValuation.apply is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (Eq.{1} (WithTop.{0} Int) (coeFn.{1, 1} (AddValuation.{0, 0} (Padic p hp) (Padic.ring p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedRing.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (fun (_x : AddValuation.{0, 0} (Padic p hp) (Padic.ring p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedRing.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) => (Padic p hp) -> (WithTop.{0} Int)) (AddValuation.hasCoeToFun.{0, 0} (Padic p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedRing.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Padic.ring p hp)) (Padic.addValuation p hp) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (WithTop.{0} Int) (HasLiftT.mk.{1, 1} Int (WithTop.{0} Int) (CoeTCₓ.coe.{1, 1} Int (WithTop.{0} Int) (WithTop.hasCoeT.{0} Int))) (Padic.valuation p hp x)))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (Eq.{1} ((fun (x._@.Mathlib.RingTheory.Valuation.Basic._hyg.8830 : Padic p hp) => WithTop.{0} Int) x) (FunLike.coe.{1, 1, 1} (AddValuation.{0, 0} (Padic p hp) (Padic.instRingPadic p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Padic p hp) (fun (_x : Padic p hp) => (fun (x._@.Mathlib.RingTheory.Valuation.Basic._hyg.8830 : Padic p hp) => WithTop.{0} Int) _x) (AddValuation.instFunLikeAddValuation.{0, 0} (Padic p hp) (WithTop.{0} Int) (Padic.instRingPadic p hp) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Padic.addValuation p hp) x) (WithTop.some.{0} Int (Padic.valuation p hp x)))
-Case conversion may be inaccurate. Consider using '#align padic.add_valuation.apply Padic.addValuation.applyₓ'. -/
 @[simp]
 theorem addValuation.apply {x : ℚ_[p]} (hx : x ≠ 0) : x.AddValuation = x.Valuation := by
   simp only [AddValuation, AddValuation.of_apply, add_valuation_def, if_neg hx]
@@ -1685,12 +1208,6 @@ section NormLeIff
 /-! ### Various characterizations of open unit balls -/
 
 
-/- warning: padic.norm_le_pow_iff_norm_lt_pow_add_one -> Padic.norm_le_pow_iff_norm_lt_pow_add_one is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (n : Int), Iff (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) n)) (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) n (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne))))))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (n : Int), Iff (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) n)) (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) n (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))))
-Case conversion may be inaccurate. Consider using '#align padic.norm_le_pow_iff_norm_lt_pow_add_one Padic.norm_le_pow_iff_norm_lt_pow_add_oneₓ'. -/
 theorem norm_le_pow_iff_norm_lt_pow_add_one (x : ℚ_[p]) (n : ℤ) : ‖x‖ ≤ p ^ n ↔ ‖x‖ < p ^ (n + 1) :=
   by
   have aux : ∀ n : ℤ, 0 < (p ^ n : ℝ) := by apply Nat.zpow_pos_of_pos; exact hp.1.Pos
@@ -1701,22 +1218,10 @@ theorem norm_le_pow_iff_norm_lt_pow_add_one (x : ℚ_[p]) (n : ℤ) : ‖x‖ 
   rw [H.le_iff_le, H.lt_iff_lt, Int.lt_add_one_iff]
 #align padic.norm_le_pow_iff_norm_lt_pow_add_one Padic.norm_le_pow_iff_norm_lt_pow_add_one
 
-/- warning: padic.norm_lt_pow_iff_norm_le_pow_sub_one -> Padic.norm_lt_pow_iff_norm_le_pow_sub_one is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (n : Int), Iff (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) n)) (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.hasSub) n (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne))))))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (n : Int), Iff (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) n)) (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.instSubInt) n (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))))
-Case conversion may be inaccurate. Consider using '#align padic.norm_lt_pow_iff_norm_le_pow_sub_one Padic.norm_lt_pow_iff_norm_le_pow_sub_oneₓ'. -/
 theorem norm_lt_pow_iff_norm_le_pow_sub_one (x : ℚ_[p]) (n : ℤ) : ‖x‖ < p ^ n ↔ ‖x‖ ≤ p ^ (n - 1) :=
   by rw [norm_le_pow_iff_norm_lt_pow_add_one, sub_add_cancel]
 #align padic.norm_lt_pow_iff_norm_le_pow_sub_one Padic.norm_lt_pow_iff_norm_le_pow_sub_one
 
-/- warning: padic.norm_le_one_iff_val_nonneg -> Padic.norm_le_one_iff_val_nonneg is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp), Iff (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (LE.le.{0} Int Int.hasLe (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) (Padic.valuation p hp x))
-but is expected to have type
-  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp), Iff (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (LE.le.{0} Int Int.instLEInt (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) (Padic.valuation p hp x))
-Case conversion may be inaccurate. Consider using '#align padic.norm_le_one_iff_val_nonneg Padic.norm_le_one_iff_val_nonnegₓ'. -/
 theorem norm_le_one_iff_val_nonneg (x : ℚ_[p]) : ‖x‖ ≤ 1 ↔ 0 ≤ x.Valuation :=
   by
   by_cases hx : x = 0
Diff
@@ -158,8 +158,7 @@ theorem norm_zero_iff (f : PadicSeq p) : f.norm = 0 ↔ f ≈ 0 :=
   constructor
   · intro h
     by_contra hf
-    unfold norm at h
-    split_ifs  at h
+    unfold norm at h; split_ifs  at h
     apply hf
     intro ε hε
     exists stationary_point hf
@@ -476,10 +475,7 @@ private theorem norm_eq_of_equiv_aux {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : 
   have hpeq : padicNorm p ((f - g) i) = max (padicNorm p (f i)) (padicNorm p (g i)) := by
     rwa [padicNorm.neg] at hpnem
   rw [hpeq, max_eq_left_of_lt hlt] at hN'
-  have : padicNorm p (f i) < padicNorm p (f i) :=
-    by
-    apply lt_of_lt_of_le hN'
-    apply sub_le_self
+  have : padicNorm p (f i) < padicNorm p (f i) := by apply lt_of_lt_of_le hN'; apply sub_le_self;
     apply padicNorm.nonneg
   exact lt_irrefl _ this
 
@@ -565,16 +561,10 @@ theorem norm_eq {f g : PadicSeq p} (h : ∀ k, padicNorm p (f k) = padicNorm p (
       hf <| equiv_zero_of_val_eq_of_equiv_zero (by simp only [h, forall_const, eq_self_iff_true]) hg
     simp only [hg, hf, norm, dif_neg, not_false_iff]
     let i := max (stationary_point hf) (stationary_point hg)
-    have hpf : padicNorm p (f (stationary_point hf)) = padicNorm p (f i) :=
-      by
-      apply stationary_point_spec
-      apply le_max_left
-      exact le_rfl
-    have hpg : padicNorm p (g (stationary_point hg)) = padicNorm p (g i) :=
-      by
-      apply stationary_point_spec
-      apply le_max_right
-      exact le_rfl
+    have hpf : padicNorm p (f (stationary_point hf)) = padicNorm p (f i) := by
+      apply stationary_point_spec; apply le_max_left; exact le_rfl
+    have hpg : padicNorm p (g (stationary_point hg)) = padicNorm p (g i) := by
+      apply stationary_point_spec; apply le_max_right; exact le_rfl
     rw [hpf, hpg, h]
 #align padic_seq.norm_eq PadicSeq.norm_eq
 -/
@@ -733,10 +723,7 @@ theorem coe_inj {q r : ℚ} : (↑q : ℚ_[p]) = ↑r ↔ q = r :=
 #align padic.coe_inj Padic.coe_inj
 
 instance : CharZero ℚ_[p] :=
-  ⟨fun m n => by
-    rw [← Rat.cast_coe_nat]
-    norm_cast
-    exact id⟩
+  ⟨fun m n => by rw [← Rat.cast_coe_nat]; norm_cast; exact id⟩
 
 /- warning: padic.coe_add -> Padic.coe_add is a dubious translation:
 lean 3 declaration is
@@ -866,11 +853,8 @@ theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) : ∃ N, ∀ i ≥ N, pa
   by_contra' h
   cases' cauchy₂ f hε with N hN
   rcases h N with ⟨i, hi, hge⟩
-  have hne : ¬f - const (padicNorm p) (f i) ≈ 0 :=
-    by
-    intro h
-    unfold PadicSeq.norm at hge <;> split_ifs  at hge
-    exact not_lt_of_ge hge hε
+  have hne : ¬f - const (padicNorm p) (f i) ≈ 0 := by intro h;
+    unfold PadicSeq.norm at hge <;> split_ifs  at hge; exact not_lt_of_ge hge hε
   unfold PadicSeq.norm at hge <;> split_ifs  at hge
   apply not_le_of_gt _ hge
   cases' em (N ≤ stationary_point hne) with hgen hngen
@@ -991,8 +975,7 @@ theorem exi_rat_seq_conv {ε : ℚ} (hε : 0 < ε) :
   rw [right_distrib]
   apply le_add_of_le_of_nonneg
   · exact (div_le_iff hε).mp (le_trans (le_of_lt hN) (by exact_mod_cast hi))
-  · apply le_of_lt
-    simpa
+  · apply le_of_lt; simpa
 #align padic.exi_rat_seq_conv Padic.exi_rat_seq_conv
 
 /- warning: padic.exi_rat_seq_conv_cauchy -> Padic.exi_rat_seq_conv_cauchy is a dubious translation:
@@ -1016,8 +999,7 @@ theorem exi_rat_seq_conv_cauchy : IsCauSeq (padicNorm p) (limSeq f) := fun ε h
   · apply lt_of_le_of_lt
     · apply padic_norm_e.add_le
     · have : (3 : ℚ) ≠ 0 := by norm_num
-      have : ε = ε / 3 + ε / 3 + ε / 3 := by
-        field_simp [this]
+      have : ε = ε / 3 + ε / 3 + ε / 3 := by field_simp [this] ;
         simp only [bit0, bit1, mul_add, mul_one]
       rw [this]
       apply add_lt_add
@@ -1433,8 +1415,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align padic.complete Padic.completeₓ'. -/
 instance complete : CauSeq.IsComplete ℚ_[p] norm :=
   by
-  constructor
-  intro f
+  constructor; intro f
   have cau_seq_norm_e : IsCauSeq padicNormE f :=
     by
     intro ε hε
@@ -1446,10 +1427,8 @@ instance complete : CauSeq.IsComplete ℚ_[p] norm :=
   intro ε hε
   cases' exists_rat_btwn hε with ε' hε'
   norm_cast  at hε'
-  cases' hq ε' hε'.1 with N hN
-  exists N
-  intro i hi
-  let h := hN i hi
+  cases' hq ε' hε'.1 with N hN; exists N
+  intro i hi; let h := hN i hi
   unfold norm
   rw_mod_cast [padic_norm_e.map_sub]
   refine' lt_trans _ hε'.2
@@ -1523,10 +1502,7 @@ Case conversion may be inaccurate. Consider using '#align padic.valuation_one Pa
 theorem valuation_one : valuation (1 : ℚ_[p]) = 0 :=
   by
   change dite (CauSeq.const (padicNorm p) 1 ≈ _) _ _ = _
-  have h : ¬CauSeq.const (padicNorm p) 1 ≈ 0 :=
-    by
-    intro H
-    erw [const_equiv p] at H
+  have h : ¬CauSeq.const (padicNorm p) 1 ≈ 0 := by intro H; erw [const_equiv p] at H;
     exact one_ne_zero H
   rw [dif_neg h]
   simp
@@ -1717,12 +1693,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align padic.norm_le_pow_iff_norm_lt_pow_add_one Padic.norm_le_pow_iff_norm_lt_pow_add_oneₓ'. -/
 theorem norm_le_pow_iff_norm_lt_pow_add_one (x : ℚ_[p]) (n : ℤ) : ‖x‖ ≤ p ^ n ↔ ‖x‖ < p ^ (n + 1) :=
   by
-  have aux : ∀ n : ℤ, 0 < (p ^ n : ℝ) :=
-    by
-    apply Nat.zpow_pos_of_pos
-    exact hp.1.Pos
-  by_cases hx0 : x = 0
-  · simp [hx0, norm_zero, aux, le_of_lt (aux _)]
+  have aux : ∀ n : ℤ, 0 < (p ^ n : ℝ) := by apply Nat.zpow_pos_of_pos; exact hp.1.Pos
+  by_cases hx0 : x = 0; · simp [hx0, norm_zero, aux, le_of_lt (aux _)]
   rw [norm_eq_pow_val hx0]
   have h1p : 1 < (p : ℝ) := by exact_mod_cast hp.1.one_lt
   have H := zpow_strictMono h1p
Diff
@@ -361,7 +361,6 @@ private unsafe def index_simp_core (hh hf hg : expr)
   when at_ (tactic.simp_target sl >> tactic.skip)
   let hs ← at_.get_locals
   hs (tactic.simp_hyp sl [])
-#align index_simp_core index_simp_core
 
 /-- This is a special-purpose tactic that lifts `padic_norm (f (stationary_point f))` to
 `padic_norm (f (max _ _ _))`. -/
@@ -483,7 +482,6 @@ private theorem norm_eq_of_equiv_aux {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : 
     apply sub_le_self
     apply padicNorm.nonneg
   exact lt_irrefl _ this
-#align padic_seq.norm_eq_of_equiv_aux padic_seq.norm_eq_of_equiv_aux
 
 private theorem norm_eq_of_equiv {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : ¬g ≈ 0) (hfg : f ≈ g) :
     padicNorm p (f (stationaryPoint hf)) = padicNorm p (g (stationaryPoint hg)) :=
@@ -498,7 +496,6 @@ private theorem norm_eq_of_equiv {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : ¬g 
     apply lt_of_le_of_ne
     apply le_of_not_gt hnlt
     apply h
-#align padic_seq.norm_eq_of_equiv padic_seq.norm_eq_of_equiv
 
 /- warning: padic_seq.norm_equiv -> PadicSeq.norm_equiv is a dubious translation:
 lean 3 declaration is
@@ -521,7 +518,6 @@ private theorem norm_nonarchimedean_aux {f g : PadicSeq p} (hfg : ¬f + g ≈ 0)
   unfold norm; split_ifs
   padic_index_simp [hfg, hf, hg]
   apply padicNorm.nonarchimedean
-#align padic_seq.norm_nonarchimedean_aux padic_seq.norm_nonarchimedean_aux
 
 /- warning: padic_seq.norm_nonarchimedean -> PadicSeq.norm_nonarchimedean is a dubious translation:
 lean 3 declaration is
@@ -897,10 +893,7 @@ theorem nonarchimedean' (q r : ℚ_[p]) : padicNormE (q + r) ≤ max (padicNormE
 #align padic_norm_e.nonarchimedean' padicNormE.nonarchimedean'
 
 /- warning: padic_norm_e.add_eq_max_of_ne' -> padicNormE.add_eq_max_of_ne' is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Padic p _inst_1} {r : Padic p _inst_1}, (Ne.{1} Rat (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) q) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) r)) -> (Eq.{1} Rat (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.hasAdd p _inst_1)) q r)) (LinearOrder.max.{0} Rat Rat.linearOrder (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) q) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) r)))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Padic p _inst_1} {r : Padic p _inst_1}, (Ne.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) q) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) r)) -> (Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.instAddPadic p _inst_1)) q r)) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.instAddPadic p _inst_1)) q r)) (Max.max.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) (LinearOrderedRing.toMax.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) Rat.instLinearOrderedRingRat) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) q) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) r)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align padic_norm_e.add_eq_max_of_ne' padicNormE.add_eq_max_of_ne'ₓ'. -/
 /-- Theorems about `padic_norm_e` are named with a `'` so the names do not conflict with the
 equivalent theorems about `norm` (`‖ ‖`). -/
@@ -974,7 +967,6 @@ open Classical
 
 private theorem div_nat_pos (n : ℕ) : 0 < 1 / (n + 1 : ℚ) :=
   div_pos zero_lt_one (by exact_mod_cast succ_pos _)
-#align padic.div_nat_pos padic.div_nat_pos
 
 /- warning: padic.lim_seq -> Padic.limSeq is a dubious translation:
 lean 3 declaration is
@@ -988,10 +980,7 @@ def limSeq : ℕ → ℚ := fun n => Classical.choose (rat_dense' (f n) (div_nat
 #align padic.lim_seq Padic.limSeq
 
 /- warning: padic.exi_rat_seq_conv -> Padic.exi_rat_seq_conv is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) {ε : Rat}, (LT.lt.{0} Rat Rat.hasLt (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat Nat.hasLe i N) -> (LT.lt.{0} Rat Rat.hasLt (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) (coeFn.{1, 1} (CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) => Nat -> (Padic p _inst_1)) (CauSeq.hasCoeToFun.{0, 0} Rat (Padic p _inst_1) Rat.linearOrderedField (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) f i) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (Padic.limSeq p _inst_1 f i)))) ε)))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1))) {ε : Rat}, (LT.lt.{0} Rat Rat.instLTRat_1 (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat instLENat i N) -> (LT.lt.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) (Subtype.val.{1} (Nat -> (Padic p _inst_1)) (fun (f : Nat -> (Padic p _inst_1)) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (a : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) a) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1)) f) f i) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (Padic.limSeq p _inst_1 f i)))) Rat.instLTRat_1 (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) (Subtype.val.{1} (Nat -> (Padic p _inst_1)) (fun (f : Nat -> (Padic p _inst_1)) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (a : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) a) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1)) f) f i) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (Padic.limSeq p _inst_1 f i)))) ε)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align padic.exi_rat_seq_conv Padic.exi_rat_seq_convₓ'. -/
 theorem exi_rat_seq_conv {ε : ℚ} (hε : 0 < ε) :
     ∃ N, ∀ i ≥ N, padicNormE (f i - (limSeq f i : ℚ_[p])) < ε :=
@@ -1047,17 +1036,12 @@ theorem exi_rat_seq_conv_cauchy : IsCauSeq (padicNorm p) (limSeq f) := fun ε h
 
 private def lim' : PadicSeq p :=
   ⟨_, exi_rat_seq_conv_cauchy f⟩
-#align padic.lim' padic.lim'
 
 private def lim : ℚ_[p] :=
   ⟦lim' f⟧
-#align padic.lim padic.lim
 
 /- warning: padic.complete' -> Padic.complete' is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))), Exists.{1} (Padic p _inst_1) (fun (q : Padic p _inst_1) => forall (ε : Rat), (GT.gt.{0} Rat Rat.hasLt ε (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat Nat.hasLe i N) -> (LT.lt.{0} Rat Rat.hasLt (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) q (coeFn.{1, 1} (CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) => Nat -> (Padic p _inst_1)) (CauSeq.hasCoeToFun.{0, 0} Rat (Padic p _inst_1) Rat.linearOrderedField (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) f i))) ε))))
-but is expected to have type
-  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1))), Exists.{1} (Padic p _inst_1) (fun (q : Padic p _inst_1) => forall (ε : Rat), (GT.gt.{0} Rat Rat.instLTRat_1 ε (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat instLENat i N) -> (LT.lt.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) q (Subtype.val.{1} (Nat -> (Padic p _inst_1)) (fun (f : Nat -> (Padic p _inst_1)) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (a : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) a) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1)) f) f i))) Rat.instLTRat_1 (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) q (Subtype.val.{1} (Nat -> (Padic p _inst_1)) (fun (f : Nat -> (Padic p _inst_1)) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (a : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) a) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1)) f) f i))) ε))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align padic.complete' Padic.complete'ₓ'. -/
 theorem complete' : ∃ q : ℚ_[p], ∀ ε > 0, ∃ N, ∀ i ≥ N, padicNormE (q - f i) < ε :=
   ⟨limUnder f, fun ε hε =>
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Robert Y. Lewis
 
 ! This file was ported from Lean 3 source module number_theory.padics.padic_numbers
-! leanprover-community/mathlib commit b9b2114f7711fec1c1e055d507f082f8ceb2c3b7
+! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.Analysis.Normed.Field.Basic
 /-!
 # p-adic numbers
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines the `p`-adic numbers (rationals) `ℚ_[p]` as
 the completion of `ℚ` with respect to the `p`-adic norm.
 We show that the `p`-adic norm on `ℚ` extends to `ℚ_[p]`, that `ℚ` is embedded in `ℚ_[p]`,
Diff
@@ -70,11 +70,13 @@ open Classical
 
 open Nat multiplicity padicNorm CauSeq CauSeq.Completion Metric
 
+#print PadicSeq /-
 /-- The type of Cauchy sequences of rationals with respect to the `p`-adic norm. -/
 @[reducible]
 def PadicSeq (p : ℕ) :=
   CauSeq _ (padicNorm p)
 #align padic_seq PadicSeq
+-/
 
 namespace PadicSeq
 
@@ -82,6 +84,12 @@ section
 
 variable {p : ℕ} [Fact p.Prime]
 
+/- warning: padic_seq.stationary -> PadicSeq.stationary is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)}, (Not (HasEquivₓ.Equiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (setoidHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) f (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (OfNat.mk.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.zero.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.hasZero.{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 _inst_1))))))) -> (Exists.{1} Nat (fun (N : Nat) => forall (m : Nat) (n : Nat), (LE.le.{0} Nat Nat.hasLe N m) -> (LE.le.{0} Nat Nat.hasLe N n) -> (Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f n)) (padicNorm p (coeFn.{1, 1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f m)))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)}, (Not (HasEquiv.Equiv.{1, 0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (instHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) f (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.toOfNat0.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Exists.{1} Nat (fun (N : Nat) => forall (m : Nat) (n : Nat), (LE.le.{0} Nat instLENat N m) -> (LE.le.{0} Nat instLENat N n) -> (Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f n)) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f m)))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.stationary PadicSeq.stationaryₓ'. -/
 /-- The `p`-adic norm of the entries of a nonzero Cauchy sequence of rationals is eventually
 constant. -/
 theorem stationary {f : CauSeq ℚ (padicNorm p)} (hf : ¬f ≈ 0) :
@@ -105,23 +113,43 @@ theorem stationary {f : CauSeq ℚ (padicNorm p)} (hf : ¬f ≈ 0) :
     apply _root_.lt_irrefl _ this⟩
 #align padic_seq.stationary PadicSeq.stationary
 
+/- warning: padic_seq.stationary_point -> PadicSeq.stationaryPoint is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> Nat
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> Nat
+Case conversion may be inaccurate. Consider using '#align padic_seq.stationary_point PadicSeq.stationaryPointₓ'. -/
 /-- For all `n ≥ stationary_point f hf`, the `p`-adic norm of `f n` is the same. -/
 def stationaryPoint {f : PadicSeq p} (hf : ¬f ≈ 0) : ℕ :=
   Classical.choose <| stationary hf
 #align padic_seq.stationary_point PadicSeq.stationaryPoint
 
+/- warning: padic_seq.stationary_point_spec -> PadicSeq.stationaryPoint_spec is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) {m : Nat} {n : Nat}, (LE.le.{0} Nat Nat.hasLe (PadicSeq.stationaryPoint p _inst_1 f hf) m) -> (LE.le.{0} Nat Nat.hasLe (PadicSeq.stationaryPoint p _inst_1 f hf) n) -> (Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f n)) (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f m)))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) {m : Nat} {n : Nat}, (LE.le.{0} Nat instLENat (PadicSeq.stationaryPoint p _inst_1 f hf) m) -> (LE.le.{0} Nat instLENat (PadicSeq.stationaryPoint p _inst_1 f hf) n) -> (Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f n)) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f m)))
+Case conversion may be inaccurate. Consider using '#align padic_seq.stationary_point_spec PadicSeq.stationaryPoint_specₓ'. -/
 theorem stationaryPoint_spec {f : PadicSeq p} (hf : ¬f ≈ 0) :
     ∀ {m n},
       stationaryPoint hf ≤ m → stationaryPoint hf ≤ n → padicNorm p (f n) = padicNorm p (f m) :=
   Classical.choose_spec <| stationary hf
 #align padic_seq.stationary_point_spec PadicSeq.stationaryPoint_spec
 
+#print PadicSeq.norm /-
 /-- Since the norm of the entries of a Cauchy sequence is eventually stationary,
 we can lift the norm to sequences. -/
 def norm (f : PadicSeq p) : ℚ :=
   if hf : f ≈ 0 then 0 else padicNorm p (f (stationaryPoint hf))
 #align padic_seq.norm PadicSeq.norm
+-/
 
+/- warning: padic_seq.norm_zero_iff -> PadicSeq.norm_zero_iff is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_zero_iff PadicSeq.norm_zero_iffₓ'. -/
 theorem norm_zero_iff (f : PadicSeq p) : f.norm = 0 ↔ f ≈ 0 :=
   by
   constructor
@@ -147,16 +175,34 @@ open CauSeq
 
 variable {p : ℕ} [Fact p.Prime]
 
+/- warning: padic_seq.equiv_zero_of_val_eq_of_equiv_zero -> PadicSeq.equiv_zero_of_val_eq_of_equiv_zero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (forall (k : Nat), Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f k)) (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) g k))) -> (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1)))))) -> (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 _inst_1))) g (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (forall (k : Nat), Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f k)) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) g k))) -> (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1))))) -> (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 _inst_1))) g (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.equiv_zero_of_val_eq_of_equiv_zero PadicSeq.equiv_zero_of_val_eq_of_equiv_zeroₓ'. -/
 theorem equiv_zero_of_val_eq_of_equiv_zero {f g : PadicSeq p}
     (h : ∀ k, padicNorm p (f k) = padicNorm p (g k)) (hf : f ≈ 0) : g ≈ 0 := fun ε hε =>
   let ⟨i, hi⟩ := hf _ hε
   ⟨i, fun j hj => by simpa [h] using hi _ hj⟩
 #align padic_seq.equiv_zero_of_val_eq_of_equiv_zero PadicSeq.equiv_zero_of_val_eq_of_equiv_zero
 
+/- warning: padic_seq.norm_nonzero_of_not_equiv_zero -> PadicSeq.norm_nonzero_of_not_equiv_zero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> (Ne.{1} Rat (PadicSeq.norm p _inst_1 f) (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Ne.{1} Rat (PadicSeq.norm p _inst_1 f) (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)))
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_nonzero_of_not_equiv_zero PadicSeq.norm_nonzero_of_not_equiv_zeroₓ'. -/
 theorem norm_nonzero_of_not_equiv_zero {f : PadicSeq p} (hf : ¬f ≈ 0) : f.norm ≠ 0 :=
   hf ∘ f.norm_zero_iff.1
 #align padic_seq.norm_nonzero_of_not_equiv_zero PadicSeq.norm_nonzero_of_not_equiv_zero
 
+/- warning: padic_seq.norm_eq_norm_app_of_nonzero -> PadicSeq.norm_eq_norm_app_of_nonzero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> (Exists.{1} Rat (fun (k : Rat) => And (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (padicNorm p k)) (Ne.{1} Rat k (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Exists.{1} Rat (fun (k : Rat) => And (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (padicNorm p k)) (Ne.{1} Rat k (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_eq_norm_app_of_nonzero PadicSeq.norm_eq_norm_app_of_nonzeroₓ'. -/
 theorem norm_eq_norm_app_of_nonzero {f : PadicSeq p} (hf : ¬f ≈ 0) :
     ∃ k, f.norm = padicNorm p k ∧ k ≠ 0 :=
   have heq : f.norm = padicNorm p (f <| stationaryPoint hf) := by simp [norm, hf]
@@ -164,18 +210,42 @@ theorem norm_eq_norm_app_of_nonzero {f : PadicSeq p} (hf : ¬f ≈ 0) :
     norm_nonzero_of_not_equiv_zero hf (by simpa [h] using HEq)⟩
 #align padic_seq.norm_eq_norm_app_of_nonzero PadicSeq.norm_eq_norm_app_of_nonzero
 
+/- warning: padic_seq.not_lim_zero_const_of_nonzero -> PadicSeq.not_limZero_const_of_nonzero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Not (CauSeq.LimZero.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (CauSeq.const.{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 _inst_1) q)))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Not (CauSeq.LimZero.{0, 0} Rat Rat Rat.instLinearOrderedFieldRat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (CauSeq.const.{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 _inst_1) q)))
+Case conversion may be inaccurate. Consider using '#align padic_seq.not_lim_zero_const_of_nonzero PadicSeq.not_limZero_const_of_nonzeroₓ'. -/
 theorem not_limZero_const_of_nonzero {q : ℚ} (hq : q ≠ 0) : ¬LimZero (const (padicNorm p) q) :=
   fun h' => hq <| const_limZero.1 h'
 #align padic_seq.not_lim_zero_const_of_nonzero PadicSeq.not_limZero_const_of_nonzero
 
+/- warning: padic_seq.not_equiv_zero_const_of_nonzero -> PadicSeq.not_equiv_zero_const_of_nonzero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Not (HasEquivₓ.Equiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (setoidHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) (CauSeq.const.{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 _inst_1) q) (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (OfNat.mk.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.zero.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.hasZero.{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 _inst_1)))))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Not (HasEquiv.Equiv.{1, 0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (instHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) (CauSeq.const.{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 _inst_1) q) (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.toOfNat0.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.instZeroCauSeq.{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 _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.not_equiv_zero_const_of_nonzero PadicSeq.not_equiv_zero_const_of_nonzeroₓ'. -/
 theorem not_equiv_zero_const_of_nonzero {q : ℚ} (hq : q ≠ 0) : ¬const (padicNorm p) q ≈ 0 :=
   fun h : LimZero (const (padicNorm p) q - 0) => not_limZero_const_of_nonzero hq <| by simpa using h
 #align padic_seq.not_equiv_zero_const_of_nonzero PadicSeq.not_equiv_zero_const_of_nonzero
 
+/- warning: padic_seq.norm_nonneg -> PadicSeq.norm_nonneg is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p), LE.le.{0} Rat Rat.hasLe (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))) (PadicSeq.norm p _inst_1 f)
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p), LE.le.{0} Rat Rat.instLERat (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)) (PadicSeq.norm p _inst_1 f)
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_nonneg PadicSeq.norm_nonnegₓ'. -/
 theorem norm_nonneg (f : PadicSeq p) : 0 ≤ f.norm :=
   if hf : f ≈ 0 then by simp [hf, norm] else by simp [norm, hf, padicNorm.nonneg]
 #align padic_seq.norm_nonneg PadicSeq.norm_nonneg
 
+/- warning: padic_seq.lift_index_left_left -> PadicSeq.lift_index_left_left is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) (v2 : Nat) (v3 : Nat), Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (LinearOrder.max.{0} Nat Nat.linearOrder (PadicSeq.stationaryPoint p _inst_1 f hf) (LinearOrder.max.{0} Nat Nat.linearOrder v2 v3))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) (v2 : Nat) (v3 : Nat), Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (Max.max.{0} Nat Nat.instMaxNat (PadicSeq.stationaryPoint p _inst_1 f hf) (Max.max.{0} Nat Nat.instMaxNat v2 v3))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.lift_index_left_left PadicSeq.lift_index_left_leftₓ'. -/
 /-- An auxiliary lemma for manipulating sequence indices. -/
 theorem lift_index_left_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v2 v3 : ℕ) :
     padicNorm p (f (stationaryPoint hf)) = padicNorm p (f (max (stationaryPoint hf) (max v2 v3))) :=
@@ -185,6 +255,12 @@ theorem lift_index_left_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v2 v3 : ℕ) :
   · exact le_rfl
 #align padic_seq.lift_index_left_left PadicSeq.lift_index_left_left
 
+/- warning: padic_seq.lift_index_left -> PadicSeq.lift_index_left is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) (v1 : Nat) (v3 : Nat), Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (LinearOrder.max.{0} Nat Nat.linearOrder v1 (LinearOrder.max.{0} Nat Nat.linearOrder (PadicSeq.stationaryPoint p _inst_1 f hf) v3))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) (v1 : Nat) (v3 : Nat), Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (Max.max.{0} Nat Nat.instMaxNat v1 (Max.max.{0} Nat Nat.instMaxNat (PadicSeq.stationaryPoint p _inst_1 f hf) v3))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.lift_index_left PadicSeq.lift_index_leftₓ'. -/
 /-- An auxiliary lemma for manipulating sequence indices. -/
 theorem lift_index_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v1 v3 : ℕ) :
     padicNorm p (f (stationaryPoint hf)) = padicNorm p (f (max v1 (max (stationaryPoint hf) v3))) :=
@@ -196,6 +272,12 @@ theorem lift_index_left {f : PadicSeq p} (hf : ¬f ≈ 0) (v1 v3 : ℕ) :
   · exact le_rfl
 #align padic_seq.lift_index_left PadicSeq.lift_index_left
 
+/- warning: padic_seq.lift_index_right -> PadicSeq.lift_index_right is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) (v1 : Nat) (v2 : Nat), Eq.{1} Rat (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f (LinearOrder.max.{0} Nat Nat.linearOrder v1 (LinearOrder.max.{0} Nat Nat.linearOrder v2 (PadicSeq.stationaryPoint p _inst_1 f hf)))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} (hf : Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) (v1 : Nat) (v2 : Nat), Eq.{1} Rat (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (PadicSeq.stationaryPoint p _inst_1 f hf))) (padicNorm p (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f (Max.max.{0} Nat Nat.instMaxNat v1 (Max.max.{0} Nat Nat.instMaxNat v2 (PadicSeq.stationaryPoint p _inst_1 f hf)))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.lift_index_right PadicSeq.lift_index_rightₓ'. -/
 /-- An auxiliary lemma for manipulating sequence indices. -/
 theorem lift_index_right {f : PadicSeq p} (hf : ¬f ≈ 0) (v1 v2 : ℕ) :
     padicNorm p (f (stationaryPoint hf)) = padicNorm p (f (max v1 (max v2 (stationaryPoint hf)))) :=
@@ -218,12 +300,20 @@ variable {p : ℕ} [Fact p.Prime]
 /-! ### Valuation on `padic_seq` -/
 
 
+#print PadicSeq.valuation /-
 /-- The `p`-adic valuation on `ℚ` lifts to `padic_seq p`.
 `valuation f` is defined to be the valuation of the (`ℚ`-valued) stationary point of `f`. -/
 def valuation (f : PadicSeq p) : ℤ :=
   if hf : f ≈ 0 then 0 else padicValRat p (f (stationaryPoint hf))
 #align padic_seq.valuation PadicSeq.valuation
+-/
 
+/- warning: padic_seq.norm_eq_pow_val -> PadicSeq.norm_eq_pow_val is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Rat (HasLiftT.mk.{1, 1} Nat Rat (CoeTCₓ.coe.{1, 1} Nat Rat (Nat.castCoe.{0} Rat (AddMonoidWithOne.toNatCast.{0} Rat (AddGroupWithOne.toAddMonoidWithOne.{0} Rat (AddCommGroupWithOne.toAddGroupWithOne.{0} Rat (Ring.toAddCommGroupWithOne.{0} Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField)))))))))) p) (Neg.neg.{0} Int Int.hasNeg (PadicSeq.valuation p _inst_1 f))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) (Nat.cast.{0} Rat (Semiring.toNatCast.{0} Rat Rat.semiring) p) (Neg.neg.{0} Int Int.instNegInt (PadicSeq.valuation p _inst_1 f))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_eq_pow_val PadicSeq.norm_eq_pow_valₓ'. -/
 theorem norm_eq_pow_val {f : PadicSeq p} (hf : ¬f ≈ 0) : f.norm = p ^ (-f.Valuation : ℤ) :=
   by
   rw [norm, Valuation, dif_neg hf, dif_neg hf, padicNorm, if_neg]
@@ -236,6 +326,12 @@ theorem norm_eq_pow_val {f : PadicSeq p} (hf : ¬f ≈ 0) : f.norm = p ^ (-f.Val
   simpa [H] using hε
 #align padic_seq.norm_eq_pow_val PadicSeq.norm_eq_pow_val
 
+/- warning: padic_seq.val_eq_iff_norm_eq -> PadicSeq.val_eq_iff_norm_eq is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> (Not (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 _inst_1))) g (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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 _inst_1))))))) -> (Iff (Eq.{1} Int (PadicSeq.valuation p _inst_1 f) (PadicSeq.valuation p _inst_1 g)) (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (PadicSeq.norm p _inst_1 g)))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (Not (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 _inst_1))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Not (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 _inst_1))) g (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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 _inst_1)))))) -> (Iff (Eq.{1} Int (PadicSeq.valuation p _inst_1 f) (PadicSeq.valuation p _inst_1 g)) (Eq.{1} Rat (PadicSeq.norm p _inst_1 f) (PadicSeq.norm p _inst_1 g)))
+Case conversion may be inaccurate. Consider using '#align padic_seq.val_eq_iff_norm_eq PadicSeq.val_eq_iff_norm_eqₓ'. -/
 theorem val_eq_iff_norm_eq {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : ¬g ≈ 0) :
     f.Valuation = g.Valuation ↔ f.norm = g.norm :=
   by
@@ -284,6 +380,12 @@ variable {p : ℕ} [hp : Fact p.Prime]
 
 include hp
 
+/- warning: padic_seq.norm_mul -> PadicSeq.norm_mul is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p) (g : PadicSeq p), Eq.{1} Rat (PadicSeq.norm p hp (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))) f g)) (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.hasMul) (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p) (g : PadicSeq p), Eq.{1} Rat (PadicSeq.norm p hp (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))) f g)) (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.instMulRat) (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_mul PadicSeq.norm_mulₓ'. -/
 theorem norm_mul (f g : PadicSeq p) : (f * g).norm = f.norm * g.norm :=
   if hf : f ≈ 0 then by
     have hg : f * g ≈ 0 := mul_equiv_zero' _ hf
@@ -300,14 +402,27 @@ theorem norm_mul (f g : PadicSeq p) : (f * g).norm = f.norm * g.norm :=
       apply padicNorm.mul
 #align padic_seq.norm_mul PadicSeq.norm_mul
 
+/- warning: padic_seq.eq_zero_iff_equiv_zero -> PadicSeq.eq_zero_iff_equiv_zero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Eq.{1} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) (CauSeq.Completion.mk.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp) f) (OfNat.ofNat.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) 0 (OfNat.mk.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) 0 (Zero.zero.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) (CauSeq.Completion.Cauchy.hasZero.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)))))) (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))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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))))))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Eq.{1} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) (CauSeq.Completion.mk.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp) f) (OfNat.ofNat.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) 0 (Zero.toOfNat0.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) (CauSeq.Completion.instZeroCauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp))))) (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))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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)))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.eq_zero_iff_equiv_zero PadicSeq.eq_zero_iff_equiv_zeroₓ'. -/
 theorem eq_zero_iff_equiv_zero (f : PadicSeq p) : mk f = 0 ↔ f ≈ 0 :=
   mk_eq
 #align padic_seq.eq_zero_iff_equiv_zero PadicSeq.eq_zero_iff_equiv_zero
 
+/- warning: padic_seq.ne_zero_iff_nequiv_zero -> PadicSeq.ne_zero_iff_nequiv_zero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Ne.{1} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) (CauSeq.Completion.mk.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp) f) (OfNat.ofNat.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) 0 (OfNat.mk.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) 0 (Zero.zero.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)) (CauSeq.Completion.Cauchy.hasZero.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.isAbsoluteValue p hp)))))) (Not (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))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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)))))))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p), Iff (Ne.{1} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) (CauSeq.Completion.mk.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp) f) (OfNat.ofNat.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) 0 (Zero.toOfNat0.{0} (CauSeq.Completion.Cauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp)) (CauSeq.Completion.instZeroCauchy.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (padicNorm.instIsAbsoluteValueRatInstOrderedSemiringRatSemiringPadicNorm p hp))))) (Not (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))) f (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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))))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.ne_zero_iff_nequiv_zero PadicSeq.ne_zero_iff_nequiv_zeroₓ'. -/
 theorem ne_zero_iff_nequiv_zero (f : PadicSeq p) : mk f ≠ 0 ↔ ¬f ≈ 0 :=
   not_iff_not.2 (eq_zero_iff_equiv_zero _)
 #align padic_seq.ne_zero_iff_nequiv_zero PadicSeq.ne_zero_iff_nequiv_zero
 
+#print PadicSeq.norm_const /-
 theorem norm_const (q : ℚ) : norm (const (padicNorm p) q) = padicNorm p q :=
   if hq : q = 0 then
     by
@@ -317,13 +432,26 @@ theorem norm_const (q : ℚ) : norm (const (padicNorm p) q) = padicNorm p q :=
     have : ¬const (padicNorm p) q ≈ 0 := not_equiv_zero_const_of_nonzero hq
     simp [norm, this]
 #align padic_seq.norm_const PadicSeq.norm_const
+-/
 
+/- warning: padic_seq.norm_values_discrete -> PadicSeq.norm_values_discrete is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (a : PadicSeq p), (Not (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))) a (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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))))))) -> (Exists.{1} Int (fun (z : Int) => Eq.{1} Rat (PadicSeq.norm p hp a) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Rat (HasLiftT.mk.{1, 1} Nat Rat (CoeTCₓ.coe.{1, 1} Nat Rat (Nat.castCoe.{0} Rat (AddMonoidWithOne.toNatCast.{0} Rat (AddGroupWithOne.toAddMonoidWithOne.{0} Rat (AddCommGroupWithOne.toAddGroupWithOne.{0} Rat (Ring.toAddCommGroupWithOne.{0} Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField)))))))))) p) (Neg.neg.{0} Int Int.hasNeg z))))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (a : PadicSeq p), (Not (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))) a (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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)))))) -> (Exists.{1} Int (fun (z : Int) => Eq.{1} Rat (PadicSeq.norm p hp a) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) (Nat.cast.{0} Rat (Semiring.toNatCast.{0} Rat Rat.semiring) p) (Neg.neg.{0} Int Int.instNegInt z))))
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_values_discrete PadicSeq.norm_values_discreteₓ'. -/
 theorem norm_values_discrete (a : PadicSeq p) (ha : ¬a ≈ 0) : ∃ z : ℤ, a.norm = p ^ (-z) :=
   by
   let ⟨k, hk, hk'⟩ := norm_eq_norm_app_of_nonzero ha
   simpa [hk] using padicNorm.values_discrete hk'
 #align padic_seq.norm_values_discrete PadicSeq.norm_values_discrete
 
+/- warning: padic_seq.norm_one -> PadicSeq.norm_one is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Rat (PadicSeq.norm p hp (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)))))) (OfNat.ofNat.{0} Rat 1 (OfNat.mk.{0} Rat 1 (One.one.{0} Rat Rat.hasOne)))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Rat (PadicSeq.norm p hp (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))))) (OfNat.ofNat.{0} Rat 1 (Rat.instOfNatRat 1))
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_one PadicSeq.norm_oneₓ'. -/
 theorem norm_one : norm (1 : PadicSeq p) = 1 :=
   by
   have h1 : ¬(1 : PadicSeq p) ≈ 0 := one_not_equiv_zero _
@@ -369,6 +497,12 @@ private theorem norm_eq_of_equiv {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : ¬g 
     apply h
 #align padic_seq.norm_eq_of_equiv padic_seq.norm_eq_of_equiv
 
+/- warning: padic_seq.norm_equiv -> PadicSeq.norm_equiv is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (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))) f g) -> (Eq.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (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))) f g) -> (Eq.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_equiv PadicSeq.norm_equivₓ'. -/
 theorem norm_equiv {f g : PadicSeq p} (hfg : f ≈ g) : f.norm = g.norm :=
   if hf : f ≈ 0 then by
     have hg : g ≈ 0 := Setoid.trans (Setoid.symm hfg) hf
@@ -386,6 +520,12 @@ private theorem norm_nonarchimedean_aux {f g : PadicSeq p} (hfg : ¬f + g ≈ 0)
   apply padicNorm.nonarchimedean
 #align padic_seq.norm_nonarchimedean_aux padic_seq.norm_nonarchimedean_aux
 
+/- warning: padic_seq.norm_nonarchimedean -> PadicSeq.norm_nonarchimedean is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p) (g : PadicSeq p), LE.le.{0} Rat Rat.hasLe (PadicSeq.norm p hp (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))) f g)) (LinearOrder.max.{0} Rat Rat.linearOrder (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (f : PadicSeq p) (g : PadicSeq p), LE.le.{0} Rat Rat.instLERat (PadicSeq.norm p hp (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))) f g)) (Max.max.{0} Rat (LinearOrderedRing.toMax.{0} Rat Rat.instLinearOrderedRingRat) (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_nonarchimedean PadicSeq.norm_nonarchimedeanₓ'. -/
 theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.norm :=
   if hfg : f + g ≈ 0 then
     by
@@ -414,6 +554,7 @@ theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.n
       else norm_nonarchimedean_aux hfg hf hg
 #align padic_seq.norm_nonarchimedean PadicSeq.norm_nonarchimedean
 
+#print PadicSeq.norm_eq /-
 theorem norm_eq {f g : PadicSeq p} (h : ∀ k, padicNorm p (f k) = padicNorm p (g k)) :
     f.norm = g.norm :=
   if hf : f ≈ 0 then by
@@ -437,11 +578,24 @@ theorem norm_eq {f g : PadicSeq p} (h : ∀ k, padicNorm p (f k) = padicNorm p (
       exact le_rfl
     rw [hpf, hpg, h]
 #align padic_seq.norm_eq PadicSeq.norm_eq
+-/
 
+/- warning: padic_seq.norm_neg -> PadicSeq.norm_neg is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (a : PadicSeq p), Eq.{1} Rat (PadicSeq.norm p hp (Neg.neg.{0} (PadicSeq p) (CauSeq.hasNeg.{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)) a)) (PadicSeq.norm p hp a)
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (a : PadicSeq p), Eq.{1} Rat (PadicSeq.norm p hp (Neg.neg.{0} (PadicSeq p) (CauSeq.instNegCauSeq.{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)) a)) (PadicSeq.norm p hp a)
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_neg PadicSeq.norm_negₓ'. -/
 theorem norm_neg (a : PadicSeq p) : (-a).norm = a.norm :=
   norm_eq <| by simp
 #align padic_seq.norm_neg PadicSeq.norm_neg
 
+/- warning: padic_seq.norm_eq_of_add_equiv_zero -> PadicSeq.norm_eq_of_add_equiv_zero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (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))) (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))) f g) (OfNat.ofNat.{0} (PadicSeq p) 0 (OfNat.mk.{0} (PadicSeq p) 0 (Zero.zero.{0} (PadicSeq p) (CauSeq.hasZero.{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)))))) -> (Eq.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (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))) (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))) f g) (OfNat.ofNat.{0} (PadicSeq p) 0 (Zero.toOfNat0.{0} (PadicSeq p) (CauSeq.instZeroCauSeq.{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))))) -> (Eq.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g))
+Case conversion may be inaccurate. Consider using '#align padic_seq.norm_eq_of_add_equiv_zero PadicSeq.norm_eq_of_add_equiv_zeroₓ'. -/
 theorem norm_eq_of_add_equiv_zero {f g : PadicSeq p} (h : f + g ≈ 0) : f.norm = g.norm :=
   by
   have : LimZero (f + g - 0) := h
@@ -450,6 +604,12 @@ theorem norm_eq_of_add_equiv_zero {f g : PadicSeq p} (h : f + g ≈ 0) : f.norm
   simpa only [norm_neg] using this
 #align padic_seq.norm_eq_of_add_equiv_zero PadicSeq.norm_eq_of_add_equiv_zero
 
+/- warning: padic_seq.add_eq_max_of_ne -> PadicSeq.add_eq_max_of_ne is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (Ne.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g)) -> (Eq.{1} Rat (PadicSeq.norm p hp (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))) f g)) (LinearOrder.max.{0} Rat Rat.linearOrder (PadicSeq.norm p hp f) (PadicSeq.norm p hp g)))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, (Ne.{1} Rat (PadicSeq.norm p hp f) (PadicSeq.norm p hp g)) -> (Eq.{1} Rat (PadicSeq.norm p hp (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))) f g)) (Max.max.{0} Rat (LinearOrderedRing.toMax.{0} Rat Rat.instLinearOrderedRingRat) (PadicSeq.norm p hp f) (PadicSeq.norm p hp g)))
+Case conversion may be inaccurate. Consider using '#align padic_seq.add_eq_max_of_ne PadicSeq.add_eq_max_of_neₓ'. -/
 theorem add_eq_max_of_ne {f g : PadicSeq p} (hfgne : f.norm ≠ g.norm) :
     (f + g).norm = max f.norm g.norm :=
   have hfg : ¬f + g ≈ 0 := mt norm_eq_of_add_equiv_zero hfgne
@@ -476,11 +636,13 @@ end Embedding
 
 end PadicSeq
 
+#print Padic /-
 /-- The `p`-adic numbers `ℚ_[p]` are the Cauchy completion of `ℚ` with respect to the `p`-adic norm.
 -/
 def Padic (p : ℕ) [Fact p.Prime] :=
   @CauSeq.Completion.Cauchy _ _ _ _ (padicNorm p) _
 #align padic Padic
+-/
 
 -- mathport name: «exprℚ_[ ]»
 notation "ℚ_[" p "]" => Padic p
@@ -520,26 +682,52 @@ instance : Div ℚ_[p] := by infer_instance
 
 instance : AddCommGroup ℚ_[p] := by infer_instance
 
+#print Padic.mk /-
 /-- Builds the equivalence class of a Cauchy sequence of rationals. -/
 def mk : PadicSeq p → ℚ_[p] :=
   Quotient.mk'
 #align padic.mk Padic.mk
+-/
 
 variable (p)
 
+/- warning: padic.zero_def -> Padic.zero_def is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) (OfNat.ofNat.{0} (Padic p _inst_1) 0 (OfNat.mk.{0} (Padic p _inst_1) 0 (Zero.zero.{0} (Padic p _inst_1) (Padic.hasZero p _inst_1)))) (Quotient.mk'.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1)) (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (OfNat.mk.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.zero.{0} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.hasZero.{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 _inst_1))))))
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) (OfNat.ofNat.{0} (Padic p _inst_1) 0 (Zero.toOfNat0.{0} (Padic p _inst_1) (Padic.instZeroPadic p _inst_1))) (Quotient.mk.{1} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1)) (OfNat.ofNat.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) 0 (Zero.toOfNat0.{0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (CauSeq.instZeroCauSeq.{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 _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align padic.zero_def Padic.zero_defₓ'. -/
 theorem zero_def : (0 : ℚ_[p]) = ⟦0⟧ :=
   rfl
 #align padic.zero_def Padic.zero_def
 
+/- warning: padic.mk_eq -> Padic.mk_eq is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, Iff (Eq.{1} (Padic p _inst_1) (Padic.mk p _inst_1 f) (Padic.mk p _inst_1 g)) (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 _inst_1))) f g)
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {f : PadicSeq p} {g : PadicSeq p}, Iff (Eq.{1} (Padic p _inst_1) (Padic.mk p _inst_1 f) (Padic.mk p _inst_1 g)) (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 _inst_1))) f g)
+Case conversion may be inaccurate. Consider using '#align padic.mk_eq Padic.mk_eqₓ'. -/
 theorem mk_eq {f g : PadicSeq p} : mk f = mk g ↔ f ≈ g :=
   Quotient.eq'
 #align padic.mk_eq Padic.mk_eq
 
+/- warning: padic.const_equiv -> Padic.const_equiv is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {q : Rat} {r : Rat}, Iff (HasEquivₓ.Equiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (setoidHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) (CauSeq.const.{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 _inst_1) q) (CauSeq.const.{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 _inst_1) r)) (Eq.{1} Rat q r)
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {q : Rat} {r : Rat}, Iff (HasEquiv.Equiv.{1, 0} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) (instHasEquiv.{1} (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1))) (CauSeq.const.{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 _inst_1) q) (CauSeq.const.{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 _inst_1) r)) (Eq.{1} Rat q r)
+Case conversion may be inaccurate. Consider using '#align padic.const_equiv Padic.const_equivₓ'. -/
 theorem const_equiv {q r : ℚ} : const (padicNorm p) q ≈ const (padicNorm p) r ↔ q = r :=
   ⟨fun heq => eq_of_sub_eq_zero <| const_limZero.1 HEq, fun heq => by
     rw [HEq] <;> apply Setoid.refl _⟩
 #align padic.const_equiv Padic.const_equiv
 
+/- warning: padic.coe_inj -> Padic.coe_inj is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {q : Rat} {r : Rat}, Iff (Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) r)) (Eq.{1} Rat q r)
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {q : Rat} {r : Rat}, Iff (Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) q) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) r)) (Eq.{1} Rat q r)
+Case conversion may be inaccurate. Consider using '#align padic.coe_inj Padic.coe_injₓ'. -/
 @[norm_cast]
 theorem coe_inj {q r : ℚ} : (↑q : ℚ_[p]) = ↑r ↔ q = r :=
   ⟨(const_equiv p).1 ∘ Quotient.eq'.1, fun h => by rw [h]⟩
@@ -551,36 +739,78 @@ instance : CharZero ℚ_[p] :=
     norm_cast
     exact id⟩
 
+/- warning: padic.coe_add -> Padic.coe_add is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (HAdd.hAdd.{0, 0, 0} Rat Rat Rat (instHAdd.{0} Rat Rat.hasAdd) x y)) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.hasAdd p _inst_1)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) y))
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (HAdd.hAdd.{0, 0, 0} Rat Rat Rat (instHAdd.{0} Rat Rat.instAddRat) x y)) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.instAddPadic p _inst_1)) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) x) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) y))
+Case conversion may be inaccurate. Consider using '#align padic.coe_add Padic.coe_addₓ'. -/
 @[norm_cast]
 theorem coe_add : ∀ {x y : ℚ}, (↑(x + y) : ℚ_[p]) = ↑x + ↑y :=
   Rat.cast_add
 #align padic.coe_add Padic.coe_add
 
+/- warning: padic.coe_neg -> Padic.coe_neg is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat}, Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (Neg.neg.{0} Rat Rat.hasNeg x)) (Neg.neg.{0} (Padic p _inst_1) (Padic.hasNeg p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) x))
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat}, Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (Neg.neg.{0} Rat Rat.instNegRat x)) (Neg.neg.{0} (Padic p _inst_1) (Padic.instNegPadic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) x))
+Case conversion may be inaccurate. Consider using '#align padic.coe_neg Padic.coe_negₓ'. -/
 @[norm_cast]
 theorem coe_neg : ∀ {x : ℚ}, (↑(-x) : ℚ_[p]) = -↑x :=
   Rat.cast_neg
 #align padic.coe_neg Padic.coe_neg
 
+/- warning: padic.coe_mul -> Padic.coe_mul is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.hasMul) x y)) (HMul.hMul.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHMul.{0} (Padic p _inst_1) (Padic.hasMul p _inst_1)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) y))
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.instMulRat) x y)) (HMul.hMul.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHMul.{0} (Padic p _inst_1) (Padic.instMulPadic p _inst_1)) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) x) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) y))
+Case conversion may be inaccurate. Consider using '#align padic.coe_mul Padic.coe_mulₓ'. -/
 @[norm_cast]
 theorem coe_mul : ∀ {x y : ℚ}, (↑(x * y) : ℚ_[p]) = ↑x * ↑y :=
   Rat.cast_mul
 #align padic.coe_mul Padic.coe_mul
 
+/- warning: padic.coe_sub -> Padic.coe_sub is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (HSub.hSub.{0, 0, 0} Rat Rat Rat (instHSub.{0} Rat (SubNegMonoid.toHasSub.{0} Rat (AddGroup.toSubNegMonoid.{0} Rat Rat.addGroup))) x y)) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) y))
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (HSub.hSub.{0, 0, 0} Rat Rat Rat (instHSub.{0} Rat Rat.instSubRat) x y)) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) x) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) y))
+Case conversion may be inaccurate. Consider using '#align padic.coe_sub Padic.coe_subₓ'. -/
 @[norm_cast]
 theorem coe_sub : ∀ {x y : ℚ}, (↑(x - y) : ℚ_[p]) = ↑x - ↑y :=
   Rat.cast_sub
 #align padic.coe_sub Padic.coe_sub
 
+/- warning: padic.coe_div -> Padic.coe_div is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (HDiv.hDiv.{0, 0, 0} Rat Rat Rat (instHDiv.{0} Rat Rat.hasDiv) x y)) (HDiv.hDiv.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHDiv.{0} (Padic p _inst_1) (Padic.hasDiv p _inst_1)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) y))
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] {x : Rat} {y : Rat}, Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (HDiv.hDiv.{0, 0, 0} Rat Rat Rat (instHDiv.{0} Rat Rat.instDivRat) x y)) (HDiv.hDiv.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHDiv.{0} (Padic p _inst_1) (Padic.instDivPadic p _inst_1)) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) x) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) y))
+Case conversion may be inaccurate. Consider using '#align padic.coe_div Padic.coe_divₓ'. -/
 @[norm_cast]
 theorem coe_div : ∀ {x y : ℚ}, (↑(x / y) : ℚ_[p]) = ↑x / ↑y :=
   Rat.cast_div
 #align padic.coe_div Padic.coe_div
 
+/- warning: padic.coe_one -> Padic.coe_one is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Nat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Nat (Padic p _inst_1) (Nat.castCoe.{0} (Padic p _inst_1) (AddMonoidWithOne.toNatCast.{0} (Padic p _inst_1) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p _inst_1) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p _inst_1) (Ring.toAddCommGroupWithOne.{0} (Padic p _inst_1) (Padic.ring p _inst_1)))))))) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (OfNat.ofNat.{0} (Padic p _inst_1) 1 (OfNat.mk.{0} (Padic p _inst_1) 1 (One.one.{0} (Padic p _inst_1) (Padic.hasOne p _inst_1))))
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (OfNat.ofNat.{0} Rat 1 (Rat.instOfNatRat 1))) (OfNat.ofNat.{0} (Padic p _inst_1) 1 (One.toOfNat1.{0} (Padic p _inst_1) (Padic.instOnePadic p _inst_1)))
+Case conversion may be inaccurate. Consider using '#align padic.coe_one Padic.coe_oneₓ'. -/
 @[norm_cast]
 theorem coe_one : (↑1 : ℚ_[p]) = 1 :=
   rfl
 #align padic.coe_one Padic.coe_one
 
+/- warning: padic.coe_zero -> Padic.coe_zero is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Nat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Nat (Padic p _inst_1) (Nat.castCoe.{0} (Padic p _inst_1) (AddMonoidWithOne.toNatCast.{0} (Padic p _inst_1) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p _inst_1) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p _inst_1) (Ring.toAddCommGroupWithOne.{0} (Padic p _inst_1) (Padic.ring p _inst_1)))))))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (OfNat.ofNat.{0} (Padic p _inst_1) 0 (OfNat.mk.{0} (Padic p _inst_1) 0 (Zero.zero.{0} (Padic p _inst_1) (Padic.hasZero p _inst_1))))
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], Eq.{1} (Padic p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (OfNat.ofNat.{0} (Padic p _inst_1) 0 (Zero.toOfNat0.{0} (Padic p _inst_1) (Padic.instZeroPadic p _inst_1)))
+Case conversion may be inaccurate. Consider using '#align padic.coe_zero Padic.coe_zeroₓ'. -/
 @[norm_cast]
 theorem coe_zero : (↑0 : ℚ_[p]) = 0 :=
   rfl
@@ -590,6 +820,12 @@ end Completion
 
 end Padic
 
+/- warning: padic_norm_e -> padicNormE is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], AbsoluteValue.{0, 0} (Padic p hp) Rat (Ring.toSemiring.{0} (Padic p hp) (Padic.ring p hp)) Rat.orderedSemiring
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], AbsoluteValue.{0, 0} (Padic p hp) Rat (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))) Rat.instOrderedSemiringRat
+Case conversion may be inaccurate. Consider using '#align padic_norm_e padicNormEₓ'. -/
 /-- The rational-valued `p`-adic norm on `ℚ_[p]` is lifted from the norm on Cauchy sequences. The
 canonical form of this function is the normed space instance, with notation `‖ ‖`. -/
 def padicNormE {p : ℕ} [hp : Fact p.Prime] : AbsoluteValue ℚ_[p] ℚ
@@ -618,6 +854,12 @@ open PadicSeq
 
 variable {p : ℕ} [Fact p.Prime]
 
+/- warning: padic_norm_e.defn -> padicNormE.defn is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p) {ε : Rat}, (LT.lt.{0} Rat Rat.hasLt (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat Nat.hasLe i N) -> (LT.lt.{0} Rat Rat.hasLt (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) (Quotient.mk'.{1} (CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm 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 _inst_1)) f) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (coeFn.{1, 1} (PadicSeq p) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) => Nat -> Rat) (CauSeq.hasCoeToFun.{0, 0} Rat Rat Rat.linearOrderedField (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p)) f i)))) ε)))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : PadicSeq p) {ε : Rat}, (LT.lt.{0} Rat Rat.instLTRat_1 (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat instLENat i N) -> (LT.lt.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) (Padic.mk p _inst_1 f) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f i)))) Rat.instLTRat_1 (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) (Padic.mk p _inst_1 f) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (Subtype.val.{1} (Nat -> Rat) (fun (f : Nat -> Rat) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) f) f i)))) ε)))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.defn padicNormE.defnₓ'. -/
 theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) : ∃ N, ∀ i ≥ N, padicNormE (⟦f⟧ - f i) < ε :=
   by
   dsimp [padicNormE]
@@ -639,12 +881,24 @@ theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) : ∃ N, ∀ i ≥ N, pa
     exact hN _ le_rfl _ hi
 #align padic_norm_e.defn padicNormE.defn
 
+/- warning: padic_norm_e.nonarchimedean' -> padicNormE.nonarchimedean' is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) (r : Padic p _inst_1), LE.le.{0} Rat Rat.hasLe (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.hasAdd p _inst_1)) q r)) (LinearOrder.max.{0} Rat Rat.linearOrder (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) q) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) r))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) (r : Padic p _inst_1), LE.le.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.instAddPadic p _inst_1)) q r)) Rat.instLERat (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.instAddPadic p _inst_1)) q r)) (Max.max.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) (LinearOrderedRing.toMax.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) Rat.instLinearOrderedRingRat) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) q) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) r))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.nonarchimedean' padicNormE.nonarchimedean'ₓ'. -/
 /-- Theorems about `padic_norm_e` are named with a `'` so the names do not conflict with the
 equivalent theorems about `norm` (`‖ ‖`). -/
 theorem nonarchimedean' (q r : ℚ_[p]) : padicNormE (q + r) ≤ max (padicNormE q) (padicNormE r) :=
   Quotient.induction_on₂ q r <| norm_nonarchimedean
 #align padic_norm_e.nonarchimedean' padicNormE.nonarchimedean'
 
+/- warning: padic_norm_e.add_eq_max_of_ne' -> padicNormE.add_eq_max_of_ne' is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Padic p _inst_1} {r : Padic p _inst_1}, (Ne.{1} Rat (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) q) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) r)) -> (Eq.{1} Rat (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.hasAdd p _inst_1)) q r)) (LinearOrder.max.{0} Rat Rat.linearOrder (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) q) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) r)))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Padic p _inst_1} {r : Padic p _inst_1}, (Ne.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) q) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) r)) -> (Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.instAddPadic p _inst_1)) q r)) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HAdd.hAdd.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHAdd.{0} (Padic p _inst_1) (Padic.instAddPadic p _inst_1)) q r)) (Max.max.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) (LinearOrderedRing.toMax.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) Rat.instLinearOrderedRingRat) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) q) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) r)))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.add_eq_max_of_ne' padicNormE.add_eq_max_of_ne'ₓ'. -/
 /-- Theorems about `padic_norm_e` are named with a `'` so the names do not conflict with the
 equivalent theorems about `norm` (`‖ ‖`). -/
 theorem add_eq_max_of_ne' {q r : ℚ_[p]} :
@@ -652,11 +906,23 @@ theorem add_eq_max_of_ne' {q r : ℚ_[p]} :
   Quotient.induction_on₂ q r fun _ _ => PadicSeq.add_eq_max_of_ne
 #align padic_norm_e.add_eq_max_of_ne' padicNormE.add_eq_max_of_ne'
 
+/- warning: padic_norm_e.eq_padic_norm' -> padicNormE.eq_padic_norm' is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Rat), Eq.{1} Rat (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) q)) (padicNorm p q)
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Rat), Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) q)) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) q)) (padicNorm p q)
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.eq_padic_norm' padicNormE.eq_padic_norm'ₓ'. -/
 @[simp]
 theorem eq_padic_norm' (q : ℚ) : padicNormE (q : ℚ_[p]) = padicNorm p q :=
   norm_const _
 #align padic_norm_e.eq_padic_norm' padicNormE.eq_padic_norm'
 
+/- warning: padic_norm_e.image' -> padicNormE.image' is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Padic p _inst_1}, (Ne.{1} (Padic p _inst_1) q (OfNat.ofNat.{0} (Padic p _inst_1) 0 (OfNat.mk.{0} (Padic p _inst_1) 0 (Zero.zero.{0} (Padic p _inst_1) (Padic.hasZero p _inst_1))))) -> (Exists.{1} Int (fun (n : Int) => Eq.{1} Rat (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) q) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Rat (HasLiftT.mk.{1, 1} Nat Rat (CoeTCₓ.coe.{1, 1} Nat Rat (Nat.castCoe.{0} Rat (AddMonoidWithOne.toNatCast.{0} Rat (AddGroupWithOne.toAddMonoidWithOne.{0} Rat (AddCommGroupWithOne.toAddGroupWithOne.{0} Rat (Ring.toAddCommGroupWithOne.{0} Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField)))))))))) p) (Neg.neg.{0} Int Int.hasNeg n))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] {q : Padic p _inst_1}, (Ne.{1} (Padic p _inst_1) q (OfNat.ofNat.{0} (Padic p _inst_1) 0 (Zero.toOfNat0.{0} (Padic p _inst_1) (Padic.instZeroPadic p _inst_1)))) -> (Exists.{1} Int (fun (n : Int) => Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) q) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) q) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) (Nat.cast.{0} Rat (Semiring.toNatCast.{0} Rat Rat.semiring) p) (Neg.neg.{0} Int Int.instNegInt n))))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.image' padicNormE.image'ₓ'. -/
 protected theorem image' {q : ℚ_[p]} : q ≠ 0 → ∃ n : ℤ, padicNormE q = p ^ (-n) :=
   Quotient.inductionOn q fun f hf =>
     have : ¬f ≈ 0 := (ne_zero_iff_nequiv_zero f).1 hf
@@ -675,6 +941,12 @@ open PadicSeq Padic
 
 variable {p : ℕ} [Fact p.Prime] (f : CauSeq _ (@padicNormE p _))
 
+/- warning: padic.rat_dense' -> Padic.rat_dense' is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) {ε : Rat}, (LT.lt.{0} Rat Rat.hasLt (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))) ε) -> (Exists.{1} Rat (fun (r : Rat) => LT.lt.{0} Rat Rat.hasLt (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) q ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) r))) ε))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) {ε : Rat}, (LT.lt.{0} Rat Rat.instLTRat_1 (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)) ε) -> (Exists.{1} Rat (fun (r : Rat) => LT.lt.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) q (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) r))) Rat.instLTRat_1 (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) q (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) r))) ε))
+Case conversion may be inaccurate. Consider using '#align padic.rat_dense' Padic.rat_dense'ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (m n «expr ≥ » N) -/
 theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicNormE (q - r) < ε :=
   Quotient.inductionOn q fun q' =>
@@ -701,11 +973,23 @@ private theorem div_nat_pos (n : ℕ) : 0 < 1 / (n + 1 : ℚ) :=
   div_pos zero_lt_one (by exact_mod_cast succ_pos _)
 #align padic.div_nat_pos padic.div_nat_pos
 
+/- warning: padic.lim_seq -> Padic.limSeq is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)], (CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) -> Nat -> Rat
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)], (CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1))) -> Nat -> Rat
+Case conversion may be inaccurate. Consider using '#align padic.lim_seq Padic.limSeqₓ'. -/
 /-- `lim_seq f`, for `f` a Cauchy sequence of `p`-adic numbers, is a sequence of rationals with the
 same limit point as `f`. -/
 def limSeq : ℕ → ℚ := fun n => Classical.choose (rat_dense' (f n) (div_nat_pos n))
 #align padic.lim_seq Padic.limSeq
 
+/- warning: padic.exi_rat_seq_conv -> Padic.exi_rat_seq_conv is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) {ε : Rat}, (LT.lt.{0} Rat Rat.hasLt (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat Nat.hasLe i N) -> (LT.lt.{0} Rat Rat.hasLt (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) (coeFn.{1, 1} (CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) => Nat -> (Padic p _inst_1)) (CauSeq.hasCoeToFun.{0, 0} Rat (Padic p _inst_1) Rat.linearOrderedField (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) f i) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (Field.toDivisionRing.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))) (Padic.limSeq p _inst_1 f i)))) ε)))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1))) {ε : Rat}, (LT.lt.{0} Rat Rat.instLTRat_1 (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)) ε) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat instLENat i N) -> (LT.lt.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) (Subtype.val.{1} (Nat -> (Padic p _inst_1)) (fun (f : Nat -> (Padic p _inst_1)) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (a : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) a) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1)) f) f i) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (Padic.limSeq p _inst_1 f i)))) Rat.instLTRat_1 (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) (Subtype.val.{1} (Nat -> (Padic p _inst_1)) (fun (f : Nat -> (Padic p _inst_1)) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (a : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) a) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1)) f) f i) (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) (Padic.limSeq p _inst_1 f i)))) ε)))
+Case conversion may be inaccurate. Consider using '#align padic.exi_rat_seq_conv Padic.exi_rat_seq_convₓ'. -/
 theorem exi_rat_seq_conv {ε : ℚ} (hε : 0 < ε) :
     ∃ N, ∀ i ≥ N, padicNormE (f i - (limSeq f i : ℚ_[p])) < ε :=
   by
@@ -719,6 +1003,12 @@ theorem exi_rat_seq_conv {ε : ℚ} (hε : 0 < ε) :
     simpa
 #align padic.exi_rat_seq_conv Padic.exi_rat_seq_conv
 
+/- warning: padic.exi_rat_seq_conv_cauchy -> Padic.exi_rat_seq_conv_cauchy is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))), IsCauSeq.{0, 0} Rat Rat.linearOrderedField Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (Padic.limSeq p _inst_1 f)
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1))), IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField))) (padicNorm p) (Padic.limSeq p _inst_1 f)
+Case conversion may be inaccurate. Consider using '#align padic.exi_rat_seq_conv_cauchy Padic.exi_rat_seq_conv_cauchyₓ'. -/
 theorem exi_rat_seq_conv_cauchy : IsCauSeq (padicNorm p) (limSeq f) := fun ε hε =>
   by
   have hε3 : 0 < ε / 3 := div_pos hε (by norm_num)
@@ -760,6 +1050,12 @@ private def lim : ℚ_[p] :=
   ⟦lim' f⟧
 #align padic.lim padic.lim
 
+/- warning: padic.complete' -> Padic.complete' is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))), Exists.{1} (Padic p _inst_1) (fun (q : Padic p _inst_1) => forall (ε : Rat), (GT.gt.{0} Rat Rat.hasLt ε (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat Nat.hasLe i N) -> (LT.lt.{0} Rat Rat.hasLt (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) q (coeFn.{1, 1} (CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) (fun (_x : CauSeq.{0, 0} Rat Rat.linearOrderedField (Padic p _inst_1) (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) => Nat -> (Padic p _inst_1)) (CauSeq.hasCoeToFun.{0, 0} Rat (Padic p _inst_1) Rat.linearOrderedField (Padic.ring p _inst_1) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) => (Padic p _inst_1) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p _inst_1) Rat (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) Rat.orderedSemiring) (padicNormE p _inst_1))) f i))) ε))))
+but is expected to have type
+  forall {p : Nat} [_inst_1 : Fact (Nat.Prime p)] (f : CauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1))), Exists.{1} (Padic p _inst_1) (fun (q : Padic p _inst_1) => forall (ε : Rat), (GT.gt.{0} Rat Rat.instLTRat_1 ε (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Exists.{1} Nat (fun (N : Nat) => forall (i : Nat), (GE.ge.{0} Nat instLENat i N) -> (LT.lt.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) q (Subtype.val.{1} (Nat -> (Padic p _inst_1)) (fun (f : Nat -> (Padic p _inst_1)) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (a : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) a) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1)) f) f i))) Rat.instLTRat_1 (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (f : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) q (Subtype.val.{1} (Nat -> (Padic p _inst_1)) (fun (f : Nat -> (Padic p _inst_1)) => IsCauSeq.{0, 0} Rat Rat.instLinearOrderedFieldRat (Padic p _inst_1) (Padic.instRingPadic p _inst_1) (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) (fun (a : Padic p _inst_1) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p _inst_1) => Rat) a) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat) (Padic p _inst_1) Rat (Distrib.toAdd.{0} (Padic p _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p _inst_1) (Semiring.toNonAssocSemiring.{0} (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p _inst_1) Rat (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) Rat.instOrderedSemiringRat)) (padicNormE p _inst_1)) f) f i))) ε))))
+Case conversion may be inaccurate. Consider using '#align padic.complete' Padic.complete'ₓ'. -/
 theorem complete' : ∃ q : ℚ_[p], ∀ ε > 0, ∃ N, ∀ i ≥ N, padicNormE (q - f i) < ε :=
   ⟨limUnder f, fun ε hε =>
     by
@@ -807,6 +1103,12 @@ instance : NormedField ℚ_[p] :=
     norm_mul' := by simp [Norm.norm, map_mul]
     norm := norm }
 
+/- warning: padic.is_absolute_value -> Padic.isAbsoluteValue is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], IsAbsoluteValue.{0, 0} Real Real.orderedSemiring (Padic p _inst_1) (Ring.toSemiring.{0} (Padic p _inst_1) (Padic.ring p _inst_1)) (fun (a : Padic p _inst_1) => Norm.norm.{0} (Padic p _inst_1) (Padic.hasNorm p _inst_1) a)
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)], IsAbsoluteValue.{0, 0} Real Real.orderedSemiring (Padic p _inst_1) (DivisionSemiring.toSemiring.{0} (Padic p _inst_1) (Semifield.toDivisionSemiring.{0} (Padic p _inst_1) (Field.toSemifield.{0} (Padic p _inst_1) (Padic.field p _inst_1)))) (fun (a : Padic p _inst_1) => Norm.norm.{0} (Padic p _inst_1) (Padic.instNormPadic p _inst_1) a)
+Case conversion may be inaccurate. Consider using '#align padic.is_absolute_value Padic.isAbsoluteValueₓ'. -/
 instance isAbsoluteValue : IsAbsoluteValue fun a : ℚ_[p] => ‖a‖
     where
   abv_nonneg := norm_nonneg
@@ -815,6 +1117,12 @@ instance isAbsoluteValue : IsAbsoluteValue fun a : ℚ_[p] => ‖a‖
   abv_mul := by simp [Norm.norm, map_mul]
 #align padic.is_absolute_value Padic.isAbsoluteValue
 
+/- warning: padic.rat_dense -> Padic.rat_dense is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) {ε : 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} Rat (fun (r : Rat) => LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p _inst_1) (Padic.hasNorm p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.hasSub p _inst_1)) q ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p _inst_1) (HasLiftT.mk.{1, 1} Rat (Padic p _inst_1) (CoeTCₓ.coe.{1, 1} Rat (Padic p _inst_1) (Rat.castCoe.{0} (Padic p _inst_1) (DivisionRing.toHasRatCast.{0} (Padic p _inst_1) (NormedDivisionRing.toDivisionRing.{0} (Padic p _inst_1) (NormedField.toNormedDivisionRing.{0} (Padic p _inst_1) (Padic.normedField p _inst_1))))))) r))) ε))
+but is expected to have type
+  forall (p : Nat) [_inst_1 : Fact (Nat.Prime p)] (q : Padic p _inst_1) {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (Exists.{1} Rat (fun (r : Rat) => LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p _inst_1) (Padic.instNormPadic p _inst_1) (HSub.hSub.{0, 0, 0} (Padic p _inst_1) (Padic p _inst_1) (Padic p _inst_1) (instHSub.{0} (Padic p _inst_1) (Padic.instSubPadic p _inst_1)) q (Rat.cast.{0} (Padic p _inst_1) (Field.toRatCast.{0} (Padic p _inst_1) (Padic.field p _inst_1)) r))) ε))
+Case conversion may be inaccurate. Consider using '#align padic.rat_dense Padic.rat_denseₓ'. -/
 theorem rat_dense (q : ℚ_[p]) {ε : ℝ} (hε : 0 < ε) : ∃ r : ℚ, ‖q - r‖ < ε :=
   let ⟨ε', hε'l, hε'r⟩ := exists_rat_btwn hε
   let ⟨r, hr⟩ := rat_dense' q (by simpa using hε'l)
@@ -833,20 +1141,44 @@ variable {p : ℕ} [hp : Fact p.Prime]
 
 include hp
 
+/- warning: padic_norm_e.mul -> padicNormE.mul is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp) (r : Padic p hp), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.hasMul p hp)) q r)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) r))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp) (r : Padic p hp), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.instMulPadic p hp)) q r)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) r))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.mul padicNormE.mulₓ'. -/
 @[simp]
 protected theorem mul (q r : ℚ_[p]) : ‖q * r‖ = ‖q‖ * ‖r‖ := by simp [Norm.norm, map_mul]
 #align padic_norm_e.mul padicNormE.mul
 
+/- warning: padic_norm_e.is_norm -> padicNormE.is_norm is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Eq.{1} Real ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) (coeFn.{1, 1} (AbsoluteValue.{0, 0} (Padic p hp) Rat (Ring.toSemiring.{0} (Padic p hp) (Padic.ring p hp)) Rat.orderedSemiring) (fun (f : AbsoluteValue.{0, 0} (Padic p hp) Rat (Ring.toSemiring.{0} (Padic p hp) (Padic.ring p hp)) Rat.orderedSemiring) => (Padic p hp) -> Rat) (AbsoluteValue.hasCoeToFun.{0, 0} (Padic p hp) Rat (Ring.toSemiring.{0} (Padic p hp) (Padic.ring p hp)) Rat.orderedSemiring) (padicNormE p hp) q)) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q)
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Eq.{1} Real (Rat.cast.{0} Real Real.ratCast (FunLike.coe.{1, 1, 1} (AbsoluteValue.{0, 0} (Padic p hp) Rat (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))) Rat.instOrderedSemiringRat) (Padic p hp) (fun (f : Padic p hp) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Padic p hp) => Rat) f) (SubadditiveHomClass.toFunLike.{0, 0, 0} (AbsoluteValue.{0, 0} (Padic p hp) Rat (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))) Rat.instOrderedSemiringRat) (Padic p hp) Rat (Distrib.toAdd.{0} (Padic p hp) (NonUnitalNonAssocSemiring.toDistrib.{0} (Padic p hp) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Padic p hp) (Semiring.toNonAssocSemiring.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))))))) (Distrib.toAdd.{0} Rat (NonUnitalNonAssocSemiring.toDistrib.{0} Rat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat (OrderedSemiring.toSemiring.{0} Rat Rat.instOrderedSemiringRat))))) (Preorder.toLE.{0} Rat (PartialOrder.toPreorder.{0} Rat (OrderedSemiring.toPartialOrder.{0} Rat Rat.instOrderedSemiringRat))) (AbsoluteValue.subadditiveHomClass.{0, 0} (Padic p hp) Rat (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))) Rat.instOrderedSemiringRat)) (padicNormE p hp) q)) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q)
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.is_norm padicNormE.is_normₓ'. -/
 protected theorem is_norm (q : ℚ_[p]) : ↑(padicNormE q) = ‖q‖ :=
   rfl
 #align padic_norm_e.is_norm padicNormE.is_norm
 
+/- warning: padic_norm_e.nonarchimedean -> padicNormE.nonarchimedean is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp) (r : Padic p hp), LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) q r)) (LinearOrder.max.{0} Real Real.linearOrder (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) r))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp) (r : Padic p hp), LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) q r)) (Max.max.{0} Real (LinearOrderedRing.toMax.{0} Real Real.instLinearOrderedRingReal) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) r))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.nonarchimedean padicNormE.nonarchimedeanₓ'. -/
 theorem nonarchimedean (q r : ℚ_[p]) : ‖q + r‖ ≤ max ‖q‖ ‖r‖ :=
   by
   unfold Norm.norm
   exact_mod_cast nonarchimedean' _ _
 #align padic_norm_e.nonarchimedean padicNormE.nonarchimedean
 
+/- warning: padic_norm_e.add_eq_max_of_ne -> padicNormE.add_eq_max_of_ne is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {q : Padic p hp} {r : Padic p hp}, (Ne.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) r)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) q r)) (LinearOrder.max.{0} Real Real.linearOrder (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) r)))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {q : Padic p hp} {r : Padic p hp}, (Ne.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) r)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) q r)) (Max.max.{0} Real (LinearOrderedRing.toMax.{0} Real Real.instLinearOrderedRingReal) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) r)))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.add_eq_max_of_ne padicNormE.add_eq_max_of_neₓ'. -/
 theorem add_eq_max_of_ne {q r : ℚ_[p]} (h : ‖q‖ ≠ ‖r‖) : ‖q + r‖ = max ‖q‖ ‖r‖ :=
   by
   unfold Norm.norm
@@ -857,6 +1189,12 @@ theorem add_eq_max_of_ne {q r : ℚ_[p]} (h : ‖q‖ ≠ ‖r‖) : ‖q + r‖
   exact_mod_cast h'
 #align padic_norm_e.add_eq_max_of_ne padicNormE.add_eq_max_of_ne
 
+/- warning: padic_norm_e.eq_padic_norm -> padicNormE.eq_padicNorm is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Rat), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp) (HasLiftT.mk.{1, 1} Rat (Padic p hp) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp) (Rat.castCoe.{0} (Padic p hp) (DivisionRing.toHasRatCast.{0} (Padic p hp) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp) (NormedField.toNormedDivisionRing.{0} (Padic p hp) (Padic.normedField p hp))))))) q)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) (padicNorm p q))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Rat), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Rat.cast.{0} (Padic p hp) (Field.toRatCast.{0} (Padic p hp) (Padic.field p hp)) q)) (Rat.cast.{0} Real Real.ratCast (padicNorm p q))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.eq_padic_norm padicNormE.eq_padicNormₓ'. -/
 @[simp]
 theorem eq_padicNorm (q : ℚ) : ‖(q : ℚ_[p])‖ = padicNorm p q :=
   by
@@ -864,6 +1202,12 @@ theorem eq_padicNorm (q : ℚ) : ‖(q : ℚ_[p])‖ = padicNorm p q :=
   rw [← padicNormE.eq_padic_norm']
 #align padic_norm_e.eq_padic_norm padicNormE.eq_padicNorm
 
+/- warning: padic_norm_e.norm_p -> padicNormE.norm_p is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p hp) (HasLiftT.mk.{1, 1} Nat (Padic p hp) (CoeTCₓ.coe.{1, 1} Nat (Padic p hp) (Nat.castCoe.{0} (Padic p hp) (AddMonoidWithOne.toNatCast.{0} (Padic p hp) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp)))))))) p)) (Inv.inv.{0} Real Real.hasInv ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Nat.cast.{0} (Padic p hp) (Semiring.toNatCast.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp))))) p)) (Inv.inv.{0} Real Real.instInvReal (Nat.cast.{0} Real Real.natCast p))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_p padicNormE.norm_pₓ'. -/
 @[simp]
 theorem norm_p : ‖(p : ℚ_[p])‖ = p⁻¹ :=
   by
@@ -874,6 +1218,12 @@ theorem norm_p : ‖(p : ℚ_[p])‖ = p⁻¹ :=
   simp [p₀, p₁, norm, padicNorm, padicValRat, padicValInt, zpow_neg, -Rat.cast_coe_nat]
 #align padic_norm_e.norm_p padicNormE.norm_p
 
+/- warning: padic_norm_e.norm_p_lt_one -> padicNormE.norm_p_lt_one is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p hp) (HasLiftT.mk.{1, 1} Nat (Padic p hp) (CoeTCₓ.coe.{1, 1} Nat (Padic p hp) (Nat.castCoe.{0} (Padic p hp) (AddMonoidWithOne.toNatCast.{0} (Padic p hp) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp)))))))) p)) (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 : Fact (Nat.Prime p)], LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Nat.cast.{0} (Padic p hp) (Semiring.toNatCast.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp))))) p)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_p_lt_one padicNormE.norm_p_lt_oneₓ'. -/
 theorem norm_p_lt_one : ‖(p : ℚ_[p])‖ < 1 :=
   by
   rw [norm_p]
@@ -881,11 +1231,23 @@ theorem norm_p_lt_one : ‖(p : ℚ_[p])‖ < 1 :=
   exact_mod_cast hp.1.one_lt
 #align padic_norm_e.norm_p_lt_one padicNormE.norm_p_lt_one
 
+/- warning: padic_norm_e.norm_p_zpow -> padicNormE.norm_p_zpow is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (n : Int), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HPow.hPow.{0, 0, 0} (Padic p hp) Int (Padic p hp) (instHPow.{0, 0} (Padic p hp) Int (DivInvMonoid.Pow.{0} (Padic p hp) (DivisionRing.toDivInvMonoid.{0} (Padic p hp) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp) (NormedField.toNormedDivisionRing.{0} (Padic p hp) (Padic.normedField p hp)))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p hp) (HasLiftT.mk.{1, 1} Nat (Padic p hp) (CoeTCₓ.coe.{1, 1} Nat (Padic p hp) (Nat.castCoe.{0} (Padic p hp) (AddMonoidWithOne.toNatCast.{0} (Padic p hp) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp)))))))) p) n)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (Neg.neg.{0} Int Int.hasNeg n))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (n : Int), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HPow.hPow.{0, 0, 0} (Padic p hp) Int (Padic p hp) (instHPow.{0, 0} (Padic p hp) Int (DivInvMonoid.Pow.{0} (Padic p hp) (DivisionRing.toDivInvMonoid.{0} (Padic p hp) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp) (NormedField.toNormedDivisionRing.{0} (Padic p hp) (Padic.normedField p hp)))))) (Nat.cast.{0} (Padic p hp) (Semiring.toNatCast.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp))))) p) n)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (Neg.neg.{0} Int Int.instNegInt n))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_p_zpow padicNormE.norm_p_zpowₓ'. -/
 @[simp]
 theorem norm_p_zpow (n : ℤ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n) := by
   rw [norm_zpow, norm_p, zpow_neg, inv_zpow]
 #align padic_norm_e.norm_p_zpow padicNormE.norm_p_zpow
 
+/- warning: padic_norm_e.norm_p_pow -> padicNormE.norm_p_pow is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (n : Nat), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HPow.hPow.{0, 0, 0} (Padic p hp) Nat (Padic p hp) (instHPow.{0, 0} (Padic p hp) Nat (Monoid.Pow.{0} (Padic p hp) (Ring.toMonoid.{0} (Padic p hp) (Padic.ring p hp)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p hp) (HasLiftT.mk.{1, 1} Nat (Padic p hp) (CoeTCₓ.coe.{1, 1} Nat (Padic p hp) (Nat.castCoe.{0} (Padic p hp) (AddMonoidWithOne.toNatCast.{0} (Padic p hp) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp)))))))) p) n)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (n : Nat), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HPow.hPow.{0, 0, 0} (Padic p hp) Nat (Padic p hp) (instHPow.{0, 0} (Padic p hp) Nat (Monoid.Pow.{0} (Padic p hp) (MonoidWithZero.toMonoid.{0} (Padic p hp) (Semiring.toMonoidWithZero.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp)))))))) (Nat.cast.{0} (Padic p hp) (Semiring.toNatCast.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp))))) p) n)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int instNatCastInt n)))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_p_pow padicNormE.norm_p_powₓ'. -/
 @[simp]
 theorem norm_p_pow (n : ℕ) : ‖(p ^ n : ℚ_[p])‖ = p ^ (-n : ℤ) := by rw [← norm_p_zpow, zpow_ofNat]
 #align padic_norm_e.norm_p_pow padicNormE.norm_p_pow
@@ -897,6 +1259,12 @@ instance : NontriviallyNormedField ℚ_[p] :=
         rw [norm_inv, norm_p, inv_inv]
         exact_mod_cast hp.1.one_lt⟩ }
 
+/- warning: padic_norm_e.image -> padicNormE.image is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {q : Padic p hp}, (Ne.{1} (Padic p hp) q (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (Exists.{1} Int (fun (n : Int) => Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Rat (HasLiftT.mk.{1, 1} Nat Rat (CoeTCₓ.coe.{1, 1} Nat Rat (Nat.castCoe.{0} Rat (AddMonoidWithOne.toNatCast.{0} Rat (AddGroupWithOne.toAddMonoidWithOne.{0} Rat (AddCommGroupWithOne.toAddGroupWithOne.{0} Rat (Ring.toAddCommGroupWithOne.{0} Rat (NormedRing.toRing.{0} Rat (NormedCommRing.toNormedRing.{0} Rat (NormedField.toNormedCommRing.{0} Rat Rat.normedField)))))))))) p) (Neg.neg.{0} Int Int.hasNeg n)))))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {q : Padic p hp}, (Ne.{1} (Padic p hp) q (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (Exists.{1} Int (fun (n : Int) => Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Rat.cast.{0} Real Real.ratCast (HPow.hPow.{0, 0, 0} Rat Int Rat (instHPow.{0, 0} Rat Int (DivInvMonoid.Pow.{0} Rat (DivisionRing.toDivInvMonoid.{0} Rat Rat.divisionRing))) (Nat.cast.{0} Rat (Semiring.toNatCast.{0} Rat Rat.semiring) p) (Neg.neg.{0} Int Int.instNegInt n)))))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.image padicNormE.imageₓ'. -/
 protected theorem image {q : ℚ_[p]} : q ≠ 0 → ∃ n : ℤ, ‖q‖ = ↑((p : ℚ) ^ (-n)) :=
   Quotient.inductionOn q fun f hf =>
     have : ¬f ≈ 0 := (PadicSeq.ne_zero_iff_nequiv_zero f).1 hf
@@ -904,6 +1272,12 @@ protected theorem image {q : ℚ_[p]} : q ≠ 0 → ∃ n : ℤ, ‖q‖ = ↑((
     ⟨n, congr_arg coe hn⟩
 #align padic_norm_e.image padicNormE.image
 
+/- warning: padic_norm_e.is_rat -> padicNormE.is_rat is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Exists.{1} Rat (fun (q' : Rat) => Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) q'))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Exists.{1} Rat (fun (q' : Rat) => Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Rat.cast.{0} Real Real.ratCast q'))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.is_rat padicNormE.is_ratₓ'. -/
 protected theorem is_rat (q : ℚ_[p]) : ∃ q' : ℚ, ‖q‖ = q' :=
   if h : q = 0 then ⟨0, by simp [h]⟩
   else
@@ -911,17 +1285,31 @@ protected theorem is_rat (q : ℚ_[p]) : ∃ q' : ℚ, ‖q‖ = q' :=
     ⟨_, hn⟩
 #align padic_norm_e.is_rat padicNormE.is_rat
 
+#print padicNormE.ratNorm /-
 /-- `rat_norm q`, for a `p`-adic number `q` is the `p`-adic norm of `q`, as rational number.
 
 The lemma `padic_norm_e.eq_rat_norm` asserts `‖q‖ = rat_norm q`. -/
 def ratNorm (q : ℚ_[p]) : ℚ :=
   Classical.choose (padicNormE.is_rat q)
 #align padic_norm_e.rat_norm padicNormE.ratNorm
+-/
 
+/- warning: padic_norm_e.eq_rat_norm -> padicNormE.eq_ratNorm is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) (padicNormE.ratNorm p hp q))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (q : Padic p hp), Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) q) (Rat.cast.{0} Real Real.ratCast (padicNormE.ratNorm p hp q))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.eq_rat_norm padicNormE.eq_ratNormₓ'. -/
 theorem eq_ratNorm (q : ℚ_[p]) : ‖q‖ = ratNorm q :=
   Classical.choose_spec (padicNormE.is_rat q)
 #align padic_norm_e.eq_rat_norm padicNormE.eq_ratNorm
 
+/- warning: padic_norm_e.norm_rat_le_one -> padicNormE.norm_rat_le_one is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {q : Rat}, (Not (Dvd.Dvd.{0} Nat Nat.hasDvd p (Rat.den q))) -> (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat (Padic p hp) (HasLiftT.mk.{1, 1} Rat (Padic p hp) (CoeTCₓ.coe.{1, 1} Rat (Padic p hp) (Rat.castCoe.{0} (Padic p hp) (DivisionRing.toHasRatCast.{0} (Padic p hp) (NormedDivisionRing.toDivisionRing.{0} (Padic p hp) (NormedField.toNormedDivisionRing.{0} (Padic p hp) (Padic.normedField p hp))))))) q)) (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 : Fact (Nat.Prime p)] {q : Rat}, (Not (Dvd.dvd.{0} Nat Nat.instDvdNat p (Rat.den q))) -> (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Rat.cast.{0} (Padic p hp) (Field.toRatCast.{0} (Padic p hp) (Padic.field p hp)) q)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_rat_le_one padicNormE.norm_rat_le_oneₓ'. -/
 theorem norm_rat_le_one : ∀ {q : ℚ} (hq : ¬p ∣ q.den), ‖(q : ℚ_[p])‖ ≤ 1
   | ⟨n, d, hn, hd⟩ => fun hq : ¬p ∣ d =>
     if hnz : n = 0 then
@@ -947,11 +1335,23 @@ theorem norm_rat_le_one : ∀ {q : ℚ} (hq : ¬p ∣ q.den), ‖(q : ℚ_[p])
         exact hp.1.Pos
 #align padic_norm_e.norm_rat_le_one padicNormE.norm_rat_le_one
 
+/- warning: padic_norm_e.norm_int_le_one -> padicNormE.norm_int_le_one is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (z : Int), LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (Padic p hp) (HasLiftT.mk.{1, 1} Int (Padic p hp) (CoeTCₓ.coe.{1, 1} Int (Padic p hp) (Int.castCoe.{0} (Padic p hp) (AddGroupWithOne.toHasIntCast.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp))))))) z)) (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 : Fact (Nat.Prime p)] (z : Int), LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Int.cast.{0} (Padic p hp) (Ring.toIntCast.{0} (Padic p hp) (Padic.instRingPadic p hp)) z)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_int_le_one padicNormE.norm_int_le_oneₓ'. -/
 theorem norm_int_le_one (z : ℤ) : ‖(z : ℚ_[p])‖ ≤ 1 :=
   suffices ‖((z : ℚ) : ℚ_[p])‖ ≤ 1 by simpa
   norm_rat_le_one <| by simp [hp.1.ne_one]
 #align padic_norm_e.norm_int_le_one padicNormE.norm_int_le_one
 
+/- warning: padic_norm_e.norm_int_lt_one_iff_dvd -> padicNormE.norm_int_lt_one_iff_dvd is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (k : Int), Iff (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (Padic p hp) (HasLiftT.mk.{1, 1} Int (Padic p hp) (CoeTCₓ.coe.{1, 1} Int (Padic p hp) (Int.castCoe.{0} (Padic p hp) (AddGroupWithOne.toHasIntCast.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp))))))) k)) (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) k)
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (k : Int), Iff (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Int.cast.{0} (Padic p hp) (Ring.toIntCast.{0} (Padic p hp) (Padic.instRingPadic p hp)) k)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (Dvd.dvd.{0} Int Int.instDvdInt (Nat.cast.{0} Int instNatCastInt p) k)
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_int_lt_one_iff_dvd padicNormE.norm_int_lt_one_iff_dvdₓ'. -/
 theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣ k :=
   by
   constructor
@@ -989,6 +1389,12 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
       exact_mod_cast hp.1.one_lt
 #align padic_norm_e.norm_int_lt_one_iff_dvd padicNormE.norm_int_lt_one_iff_dvd
 
+/- warning: padic_norm_e.norm_int_le_pow_iff_dvd -> padicNormE.norm_int_le_pow_iff_dvd is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (k : Int) (n : Nat), Iff (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (Padic p hp) (HasLiftT.mk.{1, 1} Int (Padic p hp) (CoeTCₓ.coe.{1, 1} Int (Padic p hp) (Int.castCoe.{0} (Padic p hp) (AddGroupWithOne.toHasIntCast.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp))))))) k)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (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))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p n)) k)
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (k : Int) (n : Nat), Iff (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Int.cast.{0} (Padic p hp) (Ring.toIntCast.{0} (Padic p hp) (Padic.instRingPadic p hp)) k)) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int instNatCastInt n)))) (Dvd.dvd.{0} Int Int.instDvdInt (Nat.cast.{0} Int instNatCastInt (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p n)) k)
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.norm_int_le_pow_iff_dvd padicNormE.norm_int_le_pow_iff_dvdₓ'. -/
 theorem norm_int_le_pow_iff_dvd (k : ℤ) (n : ℕ) : ‖(k : ℚ_[p])‖ ≤ ↑p ^ (-n : ℤ) ↔ ↑(p ^ n) ∣ k :=
   by
   have : (p : ℝ) ^ (-n : ℤ) = ↑(p ^ (-n : ℤ) : ℚ) := by simp
@@ -997,11 +1403,23 @@ theorem norm_int_le_pow_iff_dvd (k : ℤ) (n : ℕ) : ‖(k : ℚ_[p])‖ ≤ 
   rw [← padicNorm.dvd_iff_norm_le]
 #align padic_norm_e.norm_int_le_pow_iff_dvd padicNormE.norm_int_le_pow_iff_dvd
 
+/- warning: padic_norm_e.eq_of_norm_add_lt_right -> padicNormE.eq_of_norm_add_lt_right is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {z1 : Padic p hp} {z2 : Padic p hp}, (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) z1 z2)) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z2)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z1) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z2))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {z1 : Padic p hp} {z2 : Padic p hp}, (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) z1 z2)) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z2)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z1) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z2))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.eq_of_norm_add_lt_right padicNormE.eq_of_norm_add_lt_rightₓ'. -/
 theorem eq_of_norm_add_lt_right {z1 z2 : ℚ_[p]} (h : ‖z1 + z2‖ < ‖z2‖) : ‖z1‖ = ‖z2‖ :=
   by_contradiction fun hne =>
     not_lt_of_ge (by rw [padicNormE.add_eq_max_of_ne hne] <;> apply le_max_right) h
 #align padic_norm_e.eq_of_norm_add_lt_right padicNormE.eq_of_norm_add_lt_right
 
+/- warning: padic_norm_e.eq_of_norm_add_lt_left -> padicNormE.eq_of_norm_add_lt_left is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {z1 : Padic p hp} {z2 : Padic p hp}, (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) z1 z2)) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z1)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z1) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) z2))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {z1 : Padic p hp} {z2 : Padic p hp}, (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) z1 z2)) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z1)) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z1) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) z2))
+Case conversion may be inaccurate. Consider using '#align padic_norm_e.eq_of_norm_add_lt_left padicNormE.eq_of_norm_add_lt_leftₓ'. -/
 theorem eq_of_norm_add_lt_left {z1 z2 : ℚ_[p]} (h : ‖z1 + z2‖ < ‖z1‖) : ‖z1‖ = ‖z2‖ :=
   by_contradiction fun hne =>
     not_lt_of_ge (by rw [padicNormE.add_eq_max_of_ne hne] <;> apply le_max_left) h
@@ -1020,6 +1438,12 @@ include hp
 /- ./././Mathport/Syntax/Translate/Basic.lean:334:40: warning: unsupported option eqn_compiler.zeta -/
 set_option eqn_compiler.zeta true
 
+/- warning: padic.complete -> Padic.complete is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], CauSeq.IsComplete.{0, 0} Real Real.linearOrderedField (Padic p hp) (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp)) (Padic.isAbsoluteValue p hp)
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], CauSeq.IsComplete.{0, 0} Real Real.instLinearOrderedFieldReal (Padic p hp) (Padic.instRingPadic p hp) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp)) (Padic.isAbsoluteValue p hp)
+Case conversion may be inaccurate. Consider using '#align padic.complete Padic.completeₓ'. -/
 instance complete : CauSeq.IsComplete ℚ_[p] norm :=
   by
   constructor
@@ -1045,7 +1469,13 @@ instance complete : CauSeq.IsComplete ℚ_[p] norm :=
   exact_mod_cast hN i hi
 #align padic.complete Padic.complete
 
-theorem padic_norm_e_lim_le {f : CauSeq ℚ_[p] norm} {a : ℝ} (ha : 0 < a) (hf : ∀ i, ‖f i‖ ≤ a) :
+/- warning: padic.padic_norm_e_lim_le -> Padic.padicNormE_lim_le is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : CauSeq.{0, 0} Real Real.linearOrderedField (Padic p hp) (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp))} {a : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) a) -> (forall (i : Nat), LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (coeFn.{1, 1} (CauSeq.{0, 0} Real Real.linearOrderedField (Padic p hp) (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp))) (fun (_x : CauSeq.{0, 0} Real Real.linearOrderedField (Padic p hp) (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp))) => Nat -> (Padic p hp)) (CauSeq.hasCoeToFun.{0, 0} Real (Padic p hp) Real.linearOrderedField (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp))) f i)) a) -> (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) (CauSeq.lim.{0, 0} Real Real.linearOrderedField (Padic p hp) (Padic.ring p hp) (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp)) (Padic.isAbsoluteValue p hp) (Padic.complete p hp) f)) a)
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {f : CauSeq.{0, 0} Real Real.instLinearOrderedFieldReal (Padic p hp) (Padic.instRingPadic p hp) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp))} {a : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) a) -> (forall (i : Nat), LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (Subtype.val.{1} (Nat -> (Padic p hp)) (fun (f : Nat -> (Padic p hp)) => IsCauSeq.{0, 0} Real Real.instLinearOrderedFieldReal (Padic p hp) (Padic.instRingPadic p hp) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp)) f) f i)) a) -> (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) (CauSeq.lim.{0, 0} Real Real.instLinearOrderedFieldReal (Padic p hp) (Padic.instRingPadic p hp) (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp)) (Padic.isAbsoluteValue p hp) (Padic.complete p hp) f)) a)
+Case conversion may be inaccurate. Consider using '#align padic.padic_norm_e_lim_le Padic.padicNormE_lim_leₓ'. -/
+theorem padicNormE_lim_le {f : CauSeq ℚ_[p] norm} {a : ℝ} (ha : 0 < a) (hf : ∀ i, ‖f i‖ ≤ a) :
     ‖f.lim‖ ≤ a :=
   let ⟨N, hN⟩ := Setoid.symm (CauSeq.equiv_lim f) _ ha
   calc
@@ -1053,7 +1483,7 @@ theorem padic_norm_e_lim_le {f : CauSeq ℚ_[p] norm} {a : ℝ} (ha : 0 < a) (hf
     _ ≤ max ‖f.lim - f N‖ ‖f N‖ := (padicNormE.nonarchimedean _ _)
     _ ≤ a := max_le (le_of_lt (hN _ le_rfl)) (hf _)
     
-#align padic.padic_norm_e_lim_le Padic.padic_norm_e_lim_le
+#align padic.padic_norm_e_lim_le Padic.padicNormE_lim_le
 
 open Filter Set
 
@@ -1071,6 +1501,7 @@ instance : CompleteSpace ℚ_[p] :=
 /-! ### Valuation on `ℚ_[p]` -/
 
 
+#print Padic.valuation /-
 /-- `padic.valuation` lifts the `p`-adic valuation on rationals to `ℚ_[p]`. -/
 def valuation : ℚ_[p] → ℤ :=
   Quotient.lift (@PadicSeq.valuation p _) fun f g h =>
@@ -1082,12 +1513,25 @@ def valuation : ℚ_[p] → ℤ :=
       rw [PadicSeq.val_eq_iff_norm_eq hf hg]
       exact PadicSeq.norm_equiv h
 #align padic.valuation Padic.valuation
+-/
 
+/- warning: padic.valuation_zero -> Padic.valuation_zero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))
+Case conversion may be inaccurate. Consider using '#align padic.valuation_zero Padic.valuation_zeroₓ'. -/
 @[simp]
 theorem valuation_zero : valuation (0 : ℚ_[p]) = 0 :=
   dif_pos ((const_equiv p).2 rfl)
 #align padic.valuation_zero Padic.valuation_zero
 
+/- warning: padic.valuation_one -> Padic.valuation_one is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp (OfNat.ofNat.{0} (Padic p hp) 1 (OfNat.mk.{0} (Padic p hp) 1 (One.one.{0} (Padic p hp) (Padic.hasOne p hp))))) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp (OfNat.ofNat.{0} (Padic p hp) 1 (One.toOfNat1.{0} (Padic p hp) (Padic.instOnePadic p hp)))) (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))
+Case conversion may be inaccurate. Consider using '#align padic.valuation_one Padic.valuation_oneₓ'. -/
 @[simp]
 theorem valuation_one : valuation (1 : ℚ_[p]) = 0 :=
   by
@@ -1101,6 +1545,12 @@ theorem valuation_one : valuation (1 : ℚ_[p]) = 0 :=
   simp
 #align padic.valuation_one Padic.valuation_one
 
+/- warning: padic.norm_eq_pow_val -> Padic.norm_eq_pow_val is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (Neg.neg.{0} Int Int.hasNeg (Padic.valuation p hp x))))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (Eq.{1} Real (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (Neg.neg.{0} Int Int.instNegInt (Padic.valuation p hp x))))
+Case conversion may be inaccurate. Consider using '#align padic.norm_eq_pow_val Padic.norm_eq_pow_valₓ'. -/
 theorem norm_eq_pow_val {x : ℚ_[p]} : x ≠ 0 → ‖x‖ = p ^ (-x.Valuation) :=
   by
   apply Quotient.inductionOn' x; clear x
@@ -1115,6 +1565,12 @@ theorem norm_eq_pow_val {x : ℚ_[p]} : x ≠ 0 → ‖x‖ = p ^ (-x.Valuation)
     simpa using hf
 #align padic.norm_eq_pow_val Padic.norm_eq_pow_val
 
+/- warning: padic.valuation_p -> Padic.valuation_p is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (Padic p hp) (HasLiftT.mk.{1, 1} Nat (Padic p hp) (CoeTCₓ.coe.{1, 1} Nat (Padic p hp) (Nat.castCoe.{0} (Padic p hp) (AddMonoidWithOne.toNatCast.{0} (Padic p hp) (AddGroupWithOne.toAddMonoidWithOne.{0} (Padic p hp) (AddCommGroupWithOne.toAddGroupWithOne.{0} (Padic p hp) (Ring.toAddCommGroupWithOne.{0} (Padic p hp) (Padic.ring p hp)))))))) p)) (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} Int (Padic.valuation p hp (Nat.cast.{0} (Padic p hp) (Semiring.toNatCast.{0} (Padic p hp) (DivisionSemiring.toSemiring.{0} (Padic p hp) (Semifield.toDivisionSemiring.{0} (Padic p hp) (Field.toSemifield.{0} (Padic p hp) (Padic.field p hp))))) p)) (OfNat.ofNat.{0} Int 1 (instOfNatInt 1))
+Case conversion may be inaccurate. Consider using '#align padic.valuation_p Padic.valuation_pₓ'. -/
 @[simp]
 theorem valuation_p : valuation (p : ℚ_[p]) = 1 :=
   by
@@ -1124,6 +1580,12 @@ theorem valuation_p : valuation (p : ℚ_[p]) = 1 :=
   · simp
 #align padic.valuation_p Padic.valuation_p
 
+/- warning: padic.valuation_map_add -> Padic.valuation_map_add is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp} {y : Padic p hp}, (Ne.{1} (Padic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) x y) (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (LE.le.{0} Int Int.hasLe (LinearOrder.min.{0} Int Int.linearOrder (Padic.valuation p hp x) (Padic.valuation p hp y)) (Padic.valuation p hp (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) x y)))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp} {y : Padic p hp}, (Ne.{1} (Padic p hp) (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) x y) (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (LE.le.{0} Int Int.instLEInt (Min.min.{0} Int Int.instMinInt (Padic.valuation p hp x) (Padic.valuation p hp y)) (Padic.valuation p hp (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) x y)))
+Case conversion may be inaccurate. Consider using '#align padic.valuation_map_add Padic.valuation_map_addₓ'. -/
 theorem valuation_map_add {x y : ℚ_[p]} (hxy : x + y ≠ 0) :
     min (valuation x) (valuation y) ≤ valuation (x + y) :=
   by
@@ -1141,6 +1603,12 @@ theorem valuation_map_add {x y : ℚ_[p]} (hxy : x + y ≠ 0) :
         zpow_le_max_iff_min_le hp_one] at h_norm
 #align padic.valuation_map_add Padic.valuation_map_add
 
+/- warning: padic.valuation_map_mul -> Padic.valuation_map_mul is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp} {y : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (Ne.{1} (Padic p hp) y (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (Eq.{1} Int (Padic.valuation p hp (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.hasMul p hp)) x y)) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) (Padic.valuation p hp x) (Padic.valuation p hp y)))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp} {y : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (Ne.{1} (Padic p hp) y (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (Eq.{1} Int (Padic.valuation p hp (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.instMulPadic p hp)) x y)) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Padic.valuation p hp x) (Padic.valuation p hp y)))
+Case conversion may be inaccurate. Consider using '#align padic.valuation_map_mul Padic.valuation_map_mulₓ'. -/
 @[simp]
 theorem valuation_map_mul {x y : ℚ_[p]} (hx : x ≠ 0) (hy : y ≠ 0) :
     valuation (x * y) = valuation x + valuation y :=
@@ -1158,20 +1626,40 @@ theorem valuation_map_mul {x y : ℚ_[p]} (hx : x ≠ 0) (hy : y ≠ 0) :
   exact h_norm
 #align padic.valuation_map_mul Padic.valuation_map_mul
 
+#print Padic.addValuationDef /-
 /-- The additive `p`-adic valuation on `ℚ_[p]`, with values in `with_top ℤ`. -/
 def addValuationDef : ℚ_[p] → WithTop ℤ := fun x => if x = 0 then ⊤ else x.Valuation
 #align padic.add_valuation_def Padic.addValuationDef
+-/
 
+/- warning: padic.add_valuation.map_zero -> Padic.AddValuation.map_zero is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) (Top.top.{0} (WithTop.{0} Int) (WithTop.hasTop.{0} Int))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) (Top.top.{0} (WithTop.{0} Int) (WithTop.top.{0} Int))
+Case conversion may be inaccurate. Consider using '#align padic.add_valuation.map_zero Padic.AddValuation.map_zeroₓ'. -/
 @[simp]
 theorem AddValuation.map_zero : addValuationDef (0 : ℚ_[p]) = ⊤ := by
   simp only [add_valuation_def, if_pos (Eq.refl _)]
 #align padic.add_valuation.map_zero Padic.AddValuation.map_zero
 
+/- warning: padic.add_valuation.map_one -> Padic.AddValuation.map_one is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (OfNat.ofNat.{0} (Padic p hp) 1 (OfNat.mk.{0} (Padic p hp) 1 (One.one.{0} (Padic p hp) (Padic.hasOne p hp))))) (OfNat.ofNat.{0} (WithTop.{0} Int) 0 (OfNat.mk.{0} (WithTop.{0} Int) 0 (Zero.zero.{0} (WithTop.{0} Int) (WithTop.zero.{0} Int Int.hasZero))))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (OfNat.ofNat.{0} (Padic p hp) 1 (One.toOfNat1.{0} (Padic p hp) (Padic.instOnePadic p hp)))) (OfNat.ofNat.{0} (WithTop.{0} Int) 0 (Zero.toOfNat0.{0} (WithTop.{0} Int) (WithTop.zero.{0} Int (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.add_valuation.map_one Padic.AddValuation.map_oneₓ'. -/
 @[simp]
 theorem AddValuation.map_one : addValuationDef (1 : ℚ_[p]) = 0 := by
   simp only [add_valuation_def, if_neg one_ne_zero, valuation_one, WithTop.coe_zero]
 #align padic.add_valuation.map_one Padic.AddValuation.map_one
 
+/- warning: padic.add_valuation.map_mul -> Padic.AddValuation.map_mul is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (y : Padic p hp), Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.hasMul p hp)) x y)) (HAdd.hAdd.{0, 0, 0} (WithTop.{0} Int) (WithTop.{0} Int) (WithTop.{0} Int) (instHAdd.{0} (WithTop.{0} Int) (WithTop.add.{0} Int Int.hasAdd)) (Padic.addValuationDef p hp x) (Padic.addValuationDef p hp y))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (y : Padic p hp), Eq.{1} (WithTop.{0} Int) (Padic.addValuationDef p hp (HMul.hMul.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHMul.{0} (Padic p hp) (Padic.instMulPadic p hp)) x y)) (HAdd.hAdd.{0, 0, 0} (WithTop.{0} Int) (WithTop.{0} Int) (WithTop.{0} Int) (instHAdd.{0} (WithTop.{0} Int) (WithTop.add.{0} Int Int.instAddInt)) (Padic.addValuationDef p hp x) (Padic.addValuationDef p hp y))
+Case conversion may be inaccurate. Consider using '#align padic.add_valuation.map_mul Padic.AddValuation.map_mulₓ'. -/
 theorem AddValuation.map_mul (x y : ℚ_[p]) :
     addValuationDef (x * y) = addValuationDef x + addValuationDef y :=
   by
@@ -1185,6 +1673,12 @@ theorem AddValuation.map_mul (x y : ℚ_[p]) :
         valuation_map_mul hx hy]
 #align padic.add_valuation.map_mul Padic.AddValuation.map_mul
 
+/- warning: padic.add_valuation.map_add -> Padic.AddValuation.map_add is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (y : Padic p hp), LE.le.{0} (WithTop.{0} Int) (Preorder.toHasLe.{0} (WithTop.{0} Int) (WithTop.preorder.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))))) (LinearOrder.min.{0} (WithTop.{0} Int) (WithTop.linearOrder.{0} Int Int.linearOrder) (Padic.addValuationDef p hp x) (Padic.addValuationDef p hp y)) (Padic.addValuationDef p hp (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.hasAdd p hp)) x y))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (y : Padic p hp), LE.le.{0} (WithTop.{0} Int) (Preorder.toLE.{0} (WithTop.{0} Int) (WithTop.preorder.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))))) (Min.min.{0} (WithTop.{0} Int) (LinearOrder.toMin.{0} (WithTop.{0} Int) (WithTop.linearOrder.{0} Int Int.instLinearOrderInt)) (Padic.addValuationDef p hp x) (Padic.addValuationDef p hp y)) (Padic.addValuationDef p hp (HAdd.hAdd.{0, 0, 0} (Padic p hp) (Padic p hp) (Padic p hp) (instHAdd.{0} (Padic p hp) (Padic.instAddPadic p hp)) x y))
+Case conversion may be inaccurate. Consider using '#align padic.add_valuation.map_add Padic.AddValuation.map_addₓ'. -/
 theorem AddValuation.map_add (x y : ℚ_[p]) :
     min (addValuationDef x) (addValuationDef y) ≤ addValuationDef (x + y) :=
   by
@@ -1200,12 +1694,24 @@ theorem AddValuation.map_add (x y : ℚ_[p]) :
         exact valuation_map_add hxy
 #align padic.add_valuation.map_add Padic.AddValuation.map_add
 
+/- warning: padic.add_valuation -> Padic.addValuation is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], AddValuation.{0, 0} (Padic p hp) (Padic.ring p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedRing.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)], AddValuation.{0, 0} (Padic p hp) (Padic.instRingPadic p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))
+Case conversion may be inaccurate. Consider using '#align padic.add_valuation Padic.addValuationₓ'. -/
 /-- The additive `p`-adic valuation on `ℚ_[p]`, as an `add_valuation`. -/
 def addValuation : AddValuation ℚ_[p] (WithTop ℤ) :=
   AddValuation.of addValuationDef AddValuation.map_zero AddValuation.map_one AddValuation.map_add
     AddValuation.map_mul
 #align padic.add_valuation Padic.addValuation
 
+/- warning: padic.add_valuation.apply -> Padic.addValuation.apply is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (OfNat.mk.{0} (Padic p hp) 0 (Zero.zero.{0} (Padic p hp) (Padic.hasZero p hp))))) -> (Eq.{1} (WithTop.{0} Int) (coeFn.{1, 1} (AddValuation.{0, 0} (Padic p hp) (Padic.ring p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedRing.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (fun (_x : AddValuation.{0, 0} (Padic p hp) (Padic.ring p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedRing.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) => (Padic p hp) -> (WithTop.{0} Int)) (AddValuation.hasCoeToFun.{0, 0} (Padic p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedRing.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Padic.ring p hp)) (Padic.addValuation p hp) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int (WithTop.{0} Int) (HasLiftT.mk.{1, 1} Int (WithTop.{0} Int) (CoeTCₓ.coe.{1, 1} Int (WithTop.{0} Int) (WithTop.hasCoeT.{0} Int))) (Padic.valuation p hp x)))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] {x : Padic p hp}, (Ne.{1} (Padic p hp) x (OfNat.ofNat.{0} (Padic p hp) 0 (Zero.toOfNat0.{0} (Padic p hp) (Padic.instZeroPadic p hp)))) -> (Eq.{1} ((fun (x._@.Mathlib.RingTheory.Valuation.Basic._hyg.8830 : Padic p hp) => WithTop.{0} Int) x) (FunLike.coe.{1, 1, 1} (AddValuation.{0, 0} (Padic p hp) (Padic.instRingPadic p hp) (WithTop.{0} Int) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Padic p hp) (fun (_x : Padic p hp) => (fun (x._@.Mathlib.RingTheory.Valuation.Basic._hyg.8830 : Padic p hp) => WithTop.{0} Int) _x) (AddValuation.instFunLikeAddValuation.{0, 0} (Padic p hp) (WithTop.{0} Int) (Padic.instRingPadic p hp) (WithTop.linearOrderedAddCommMonoidWithTop.{0} Int (LinearOrderedSemiring.toLinearOrderedAddCommMonoid.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Padic.addValuation p hp) x) (WithTop.some.{0} Int (Padic.valuation p hp x)))
+Case conversion may be inaccurate. Consider using '#align padic.add_valuation.apply Padic.addValuation.applyₓ'. -/
 @[simp]
 theorem addValuation.apply {x : ℚ_[p]} (hx : x ≠ 0) : x.AddValuation = x.Valuation := by
   simp only [AddValuation, AddValuation.of_apply, add_valuation_def, if_neg hx]
@@ -1216,6 +1722,12 @@ section NormLeIff
 /-! ### Various characterizations of open unit balls -/
 
 
+/- warning: padic.norm_le_pow_iff_norm_lt_pow_add_one -> Padic.norm_le_pow_iff_norm_lt_pow_add_one is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (n : Int), Iff (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) n)) (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) n (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne))))))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (n : Int), Iff (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) n)) (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) n (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))))
+Case conversion may be inaccurate. Consider using '#align padic.norm_le_pow_iff_norm_lt_pow_add_one Padic.norm_le_pow_iff_norm_lt_pow_add_oneₓ'. -/
 theorem norm_le_pow_iff_norm_lt_pow_add_one (x : ℚ_[p]) (n : ℤ) : ‖x‖ ≤ p ^ n ↔ ‖x‖ < p ^ (n + 1) :=
   by
   have aux : ∀ n : ℤ, 0 < (p ^ n : ℝ) :=
@@ -1230,10 +1742,22 @@ theorem norm_le_pow_iff_norm_lt_pow_add_one (x : ℚ_[p]) (n : ℤ) : ‖x‖ 
   rw [H.le_iff_le, H.lt_iff_lt, Int.lt_add_one_iff]
 #align padic.norm_le_pow_iff_norm_lt_pow_add_one Padic.norm_le_pow_iff_norm_lt_pow_add_one
 
+/- warning: padic.norm_lt_pow_iff_norm_le_pow_sub_one -> Padic.norm_lt_pow_iff_norm_le_pow_sub_one is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (n : Int), Iff (LT.lt.{0} Real Real.hasLt (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) n)) (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) p) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.hasSub) n (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne))))))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp) (n : Int), Iff (LT.lt.{0} Real Real.instLTReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) n)) (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (HPow.hPow.{0, 0, 0} Real Int Real (instHPow.{0, 0} Real Int (DivInvMonoid.Pow.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.instDivisionRingReal))) (Nat.cast.{0} Real Real.natCast p) (HSub.hSub.{0, 0, 0} Int Int Int (instHSub.{0} Int Int.instSubInt) n (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))))
+Case conversion may be inaccurate. Consider using '#align padic.norm_lt_pow_iff_norm_le_pow_sub_one Padic.norm_lt_pow_iff_norm_le_pow_sub_oneₓ'. -/
 theorem norm_lt_pow_iff_norm_le_pow_sub_one (x : ℚ_[p]) (n : ℤ) : ‖x‖ < p ^ n ↔ ‖x‖ ≤ p ^ (n - 1) :=
   by rw [norm_le_pow_iff_norm_lt_pow_add_one, sub_add_cancel]
 #align padic.norm_lt_pow_iff_norm_le_pow_sub_one Padic.norm_lt_pow_iff_norm_le_pow_sub_one
 
+/- warning: padic.norm_le_one_iff_val_nonneg -> Padic.norm_le_one_iff_val_nonneg is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp), Iff (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (Padic p hp) (Padic.hasNorm p hp) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (LE.le.{0} Int Int.hasLe (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) (Padic.valuation p hp x))
+but is expected to have type
+  forall {p : Nat} [hp : Fact (Nat.Prime p)] (x : Padic p hp), Iff (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (Padic p hp) (Padic.instNormPadic p hp) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (LE.le.{0} Int Int.instLEInt (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) (Padic.valuation p hp x))
+Case conversion may be inaccurate. Consider using '#align padic.norm_le_one_iff_val_nonneg Padic.norm_le_one_iff_val_nonnegₓ'. -/
 theorem norm_le_one_iff_val_nonneg (x : ℚ_[p]) : ‖x‖ ≤ 1 ↔ 0 ≤ x.Valuation :=
   by
   by_cases hx : x = 0
Diff
@@ -287,11 +287,11 @@ include hp
 theorem norm_mul (f g : PadicSeq p) : (f * g).norm = f.norm * g.norm :=
   if hf : f ≈ 0 then by
     have hg : f * g ≈ 0 := mul_equiv_zero' _ hf
-    simp only [hf, hg, norm, dif_pos, zero_mul]
+    simp only [hf, hg, norm, dif_pos, MulZeroClass.zero_mul]
   else
     if hg : g ≈ 0 then by
       have hf : f * g ≈ 0 := mul_equiv_zero _ hg
-      simp only [hf, hg, norm, dif_pos, mul_zero]
+      simp only [hf, hg, norm, dif_pos, MulZeroClass.mul_zero]
     else by
       have hfg : ¬f * g ≈ 0 := by apply mul_not_equiv_zero <;> assumption
       unfold norm
@@ -1177,9 +1177,9 @@ theorem AddValuation.map_mul (x y : ℚ_[p]) :
   by
   simp only [add_valuation_def]
   by_cases hx : x = 0
-  · rw [hx, if_pos (Eq.refl _), zero_mul, if_pos (Eq.refl _), WithTop.top_add]
+  · rw [hx, if_pos (Eq.refl _), MulZeroClass.zero_mul, if_pos (Eq.refl _), WithTop.top_add]
   · by_cases hy : y = 0
-    · rw [hy, if_pos (Eq.refl _), mul_zero, if_pos (Eq.refl _), WithTop.add_top]
+    · rw [hy, if_pos (Eq.refl _), MulZeroClass.mul_zero, if_pos (Eq.refl _), WithTop.add_top]
     ·
       rw [if_neg hx, if_neg hy, if_neg (mul_ne_zero hx hy), ← WithTop.coe_add, WithTop.coe_eq_coe,
         valuation_map_mul hx hy]
Diff
@@ -797,14 +797,14 @@ instance : MetricSpace ℚ_[p] where
     apply padic_norm_e.eq_zero.1
     exact_mod_cast h
 
-instance : HasNorm ℚ_[p] :=
+instance : Norm ℚ_[p] :=
   ⟨fun x => padicNormE x⟩
 
 instance : NormedField ℚ_[p] :=
   { Padic.field,
     Padic.metricSpace p with
     dist_eq := fun _ _ => rfl
-    norm_mul' := by simp [HasNorm.norm, map_mul]
+    norm_mul' := by simp [Norm.norm, map_mul]
     norm := norm }
 
 instance isAbsoluteValue : IsAbsoluteValue fun a : ℚ_[p] => ‖a‖
@@ -812,13 +812,13 @@ instance isAbsoluteValue : IsAbsoluteValue fun a : ℚ_[p] => ‖a‖
   abv_nonneg := norm_nonneg
   abv_eq_zero _ := norm_eq_zero
   abv_add := norm_add_le
-  abv_mul := by simp [HasNorm.norm, map_mul]
+  abv_mul := by simp [Norm.norm, map_mul]
 #align padic.is_absolute_value Padic.isAbsoluteValue
 
 theorem rat_dense (q : ℚ_[p]) {ε : ℝ} (hε : 0 < ε) : ∃ r : ℚ, ‖q - r‖ < ε :=
   let ⟨ε', hε'l, hε'r⟩ := exists_rat_btwn hε
   let ⟨r, hr⟩ := rat_dense' q (by simpa using hε'l)
-  ⟨r, lt_trans (by simpa [HasNorm.norm] using hr) hε'r⟩
+  ⟨r, lt_trans (by simpa [Norm.norm] using hr) hε'r⟩
 #align padic.rat_dense Padic.rat_dense
 
 end NormedSpace
@@ -834,7 +834,7 @@ variable {p : ℕ} [hp : Fact p.Prime]
 include hp
 
 @[simp]
-protected theorem mul (q r : ℚ_[p]) : ‖q * r‖ = ‖q‖ * ‖r‖ := by simp [HasNorm.norm, map_mul]
+protected theorem mul (q r : ℚ_[p]) : ‖q * r‖ = ‖q‖ * ‖r‖ := by simp [Norm.norm, map_mul]
 #align padic_norm_e.mul padicNormE.mul
 
 protected theorem is_norm (q : ℚ_[p]) : ↑(padicNormE q) = ‖q‖ :=
@@ -843,24 +843,24 @@ protected theorem is_norm (q : ℚ_[p]) : ↑(padicNormE q) = ‖q‖ :=
 
 theorem nonarchimedean (q r : ℚ_[p]) : ‖q + r‖ ≤ max ‖q‖ ‖r‖ :=
   by
-  unfold HasNorm.norm
+  unfold Norm.norm
   exact_mod_cast nonarchimedean' _ _
 #align padic_norm_e.nonarchimedean padicNormE.nonarchimedean
 
 theorem add_eq_max_of_ne {q r : ℚ_[p]} (h : ‖q‖ ≠ ‖r‖) : ‖q + r‖ = max ‖q‖ ‖r‖ :=
   by
-  unfold HasNorm.norm
+  unfold Norm.norm
   apply_mod_cast add_eq_max_of_ne'
   intro h'
   apply h
-  unfold HasNorm.norm
+  unfold Norm.norm
   exact_mod_cast h'
 #align padic_norm_e.add_eq_max_of_ne padicNormE.add_eq_max_of_ne
 
 @[simp]
 theorem eq_padicNorm (q : ℚ) : ‖(q : ℚ_[p])‖ = padicNorm p q :=
   by
-  unfold HasNorm.norm
+  unfold Norm.norm
   rw [← padicNormE.eq_padic_norm']
 #align padic_norm_e.eq_padic_norm padicNormE.eq_padicNorm
 
Diff
@@ -781,7 +781,7 @@ section NormedSpace
 
 variable (p : ℕ) [Fact p.Prime]
 
-instance : HasDist ℚ_[p] :=
+instance : Dist ℚ_[p] :=
   ⟨fun x y => padicNormE (x - y)⟩
 
 instance : MetricSpace ℚ_[p] where
Diff
@@ -675,7 +675,7 @@ open PadicSeq Padic
 
 variable {p : ℕ} [Fact p.Prime] (f : CauSeq _ (@padicNormE p _))
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (m n «expr ≥ » N) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (m n «expr ≥ » N) -/
 theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicNormE (q - r) < ε :=
   Quotient.inductionOn q fun q' =>
     have : ∃ N, ∀ (m) (_ : m ≥ N) (n) (_ : n ≥ N), padicNorm p (q' m - q' n) < ε := cauchy₂ _ hε
@@ -961,7 +961,7 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
     rw [eq_comm]
     calc
       ‖(k : ℚ_[p])‖ = ‖((k : ℚ) : ℚ_[p])‖ := by norm_cast
-      _ = padicNorm p k := padicNormE.eq_padicNorm _
+      _ = padicNorm p k := (padicNormE.eq_padicNorm _)
       _ = 1 := _
       
     rw [padicNorm]
@@ -1050,7 +1050,7 @@ theorem padic_norm_e_lim_le {f : CauSeq ℚ_[p] norm} {a : ℝ} (ha : 0 < a) (hf
   let ⟨N, hN⟩ := Setoid.symm (CauSeq.equiv_lim f) _ ha
   calc
     ‖f.lim‖ = ‖f.lim - f N + f N‖ := by simp
-    _ ≤ max ‖f.lim - f N‖ ‖f N‖ := padicNormE.nonarchimedean _ _
+    _ ≤ max ‖f.lim - f N‖ ‖f N‖ := (padicNormE.nonarchimedean _ _)
     _ ≤ a := max_le (le_of_lt (hN _ le_rfl)) (hf _)
     
 #align padic.padic_norm_e_lim_le Padic.padic_norm_e_lim_le

Changes in mathlib4

mathlib3
mathlib4
chore: superfluous parentheses part 2 (#12131)

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

Diff
@@ -922,7 +922,7 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
     rw [eq_comm]
     calc
       ‖(k : ℚ_[p])‖ = ‖((k : ℚ) : ℚ_[p])‖ := by norm_cast
-      _ = padicNorm p k := (padicNormE.eq_padicNorm _)
+      _ = padicNorm p k := padicNormE.eq_padicNorm _
       _ = 1 := mod_cast (int_eq_one_iff k).mpr h
   · rintro ⟨x, rfl⟩
     push_cast
chore: remove mathport name: <expression> lines (#11928)

Quoting [@digama0](https://github.com/digama0):

These were actually never meant to go in the file, they are basically debugging information and only useful on significantly broken mathport files. You can safely remove all of them.

Diff
@@ -465,7 +465,6 @@ def Padic (p : ℕ) [Fact p.Prime] :=
   CauSeq.Completion.Cauchy (padicNorm p)
 #align padic Padic
 
--- mathport name: «exprℚ_[ ]»
 /-- notation for p-padic rationals -/
 notation "ℚ_[" p "]" => Padic p
 
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11813)
Diff
@@ -1090,7 +1090,7 @@ theorem valuation_map_mul {x y : ℚ_[p]} (hx : x ≠ 0) (hy : y ≠ 0) :
     valuation (x * y : ℚ_[p]) = valuation x + valuation y := by
   have h_norm : ‖x * y‖ = ‖x‖ * ‖y‖ := norm_mul x y
   have hp_ne_one : (p : ℝ) ≠ 1 := by
-    rw [← Nat.cast_one, Ne.def, Nat.cast_inj]
+    rw [← Nat.cast_one, Ne, Nat.cast_inj]
     exact Nat.Prime.ne_one hp.elim
   have hp_pos : (0 : ℝ) < p := by
     rw [← Nat.cast_zero, Nat.cast_lt]
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
@@ -382,7 +382,7 @@ theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.n
     if hf : f ≈ 0 then by
       have hfg' : f + g ≈ g := by
         change LimZero (f - 0) at hf
-        show LimZero (f + g - g); · simpa only [sub_zero, add_sub_cancel] using hf
+        show LimZero (f + g - g); · simpa only [sub_zero, add_sub_cancel_right] using hf
       have hcfg : (f + g).norm = g.norm := norm_equiv hfg'
       have hcl : f.norm = 0 := (norm_zero_iff f).2 hf
       have : max f.norm g.norm = g.norm := by rw [hcl]; exact max_eq_right (norm_nonneg _)
@@ -391,7 +391,7 @@ theorem norm_nonarchimedean (f g : PadicSeq p) : (f + g).norm ≤ max f.norm g.n
       if hg : g ≈ 0 then by
         have hfg' : f + g ≈ f := by
           change LimZero (g - 0) at hg
-          show LimZero (f + g - f); · simpa only [add_sub_cancel', sub_zero] using hg
+          show LimZero (f + g - f); · simpa only [add_sub_cancel_left, sub_zero] using hg
         have hcfg : (f + g).norm = f.norm := norm_equiv hfg'
         have hcl : g.norm = 0 := (norm_zero_iff g).2 hg
         have : max f.norm g.norm = f.norm := by rw [hcl]; exact max_eq_left (norm_nonneg _)
@@ -436,14 +436,14 @@ theorem add_eq_max_of_ne {f g : PadicSeq p} (hfgne : f.norm ≠ g.norm) :
   have hfg : ¬f + g ≈ 0 := mt norm_eq_of_add_equiv_zero hfgne
   if hf : f ≈ 0 then by
     have : LimZero (f - 0) := hf
-    have : f + g ≈ g := show LimZero (f + g - g) by simpa only [sub_zero, add_sub_cancel]
+    have : f + g ≈ g := show LimZero (f + g - g) by simpa only [sub_zero, add_sub_cancel_right]
     have h1 : (f + g).norm = g.norm := norm_equiv this
     have h2 : f.norm = 0 := (norm_zero_iff _).2 hf
     rw [h1, h2, max_eq_right (norm_nonneg _)]
   else
     if hg : g ≈ 0 then by
       have : LimZero (g - 0) := hg
-      have : f + g ≈ f := show LimZero (f + g - f) by rw [add_sub_cancel']; simpa only [sub_zero]
+      have : f + g ≈ f := show LimZero (f + g - f) by simpa only [add_sub_cancel_left, sub_zero]
       have h1 : (f + g).norm = f.norm := norm_equiv this
       have h2 : g.norm = 0 := (norm_zero_iff _).2 hg
       rw [h1, h2, max_eq_left (norm_nonneg _)]
chore: Rename cat_coe_nat/cast_coe_int to cast_natCast/cast_intCast (#11552)

Reduce the diff of #11499

Diff
@@ -530,7 +530,7 @@ theorem coe_inj {q r : ℚ} : (↑q : ℚ_[p]) = ↑r ↔ q = r :=
 
 instance : CharZero ℚ_[p] :=
   ⟨fun m n ↦ by
-    rw [← Rat.cast_coe_nat]
+    rw [← Rat.cast_natCast]
     norm_cast
     exact id⟩
 
@@ -836,10 +836,10 @@ theorem eq_padicNorm (q : ℚ) : ‖(q : ℚ_[p])‖ = padicNorm p q := by
 
 @[simp]
 theorem norm_p : ‖(p : ℚ_[p])‖ = (p : ℝ)⁻¹ := by
-  rw [← @Rat.cast_coe_nat ℝ _ p]
-  rw [← @Rat.cast_coe_nat ℚ_[p] _ p]
+  rw [← @Rat.cast_natCast ℝ _ p]
+  rw [← @Rat.cast_natCast ℚ_[p] _ p]
   simp [hp.1.ne_zero, hp.1.ne_one, norm, padicNorm, padicValRat, padicValInt, zpow_neg,
-    -Rat.cast_coe_nat]
+    -Rat.cast_natCast]
 #align padic_norm_e.norm_p padicNormE.norm_p
 
 theorem norm_p_lt_one : ‖(p : ℚ_[p])‖ < 1 := by
@@ -1052,7 +1052,7 @@ theorem norm_eq_pow_val {x : ℚ_[p]} : x ≠ 0 → ‖x‖ = (p : ℝ) ^ (-x.va
   change (PadicSeq.norm _ : ℝ) = (p : ℝ) ^ (-PadicSeq.valuation _)
   rw [PadicSeq.norm_eq_pow_val]
   change ↑((p : ℚ) ^ (-PadicSeq.valuation f)) = (p : ℝ) ^ (-PadicSeq.valuation f)
-  · rw [Rat.cast_zpow, Rat.cast_coe_nat]
+  · rw [Rat.cast_zpow, Rat.cast_natCast]
   · apply CauSeq.not_limZero_of_not_congr_zero
     -- Porting note: was `contrapose! hf`
     intro hf'
chore: Rename zpow_coe_nat to zpow_natCast (#11528)

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

Diff
@@ -857,7 +857,7 @@ theorem norm_p_zpow (n : ℤ) : ‖(p : ℚ_[p]) ^ n‖ = (p : ℝ) ^ (-n) := by
 -- Porting note: Linter thinks this is a duplicate simp lemma, so `priority` is assigned
 @[simp (high)]
 theorem norm_p_pow (n : ℕ) : ‖(p : ℚ_[p]) ^ n‖ = (p : ℝ) ^ (-n : ℤ) := by
-  rw [← norm_p_zpow, zpow_coe_nat]
+  rw [← norm_p_zpow, zpow_natCast]
 #align padic_norm_e.norm_p_pow padicNormE.norm_p_pow
 
 instance : NontriviallyNormedField ℚ_[p] :=
@@ -903,7 +903,7 @@ theorem norm_rat_le_one : ∀ {q : ℚ} (_ : ¬p ∣ q.den), ‖(q : ℚ_[p])‖
       norm_cast
       -- Porting note: `Nat.cast_zero` instead of another `norm_cast` call
       rw [padicNorm.eq_zpow_of_nonzero hnz', padicValRat, neg_sub,
-        padicValNat.eq_zero_of_not_dvd hq, Nat.cast_zero, zero_sub, zpow_neg, zpow_coe_nat]
+        padicValNat.eq_zero_of_not_dvd hq, Nat.cast_zero, zero_sub, zpow_neg, zpow_natCast]
       apply inv_le_one
       · norm_cast
         apply one_le_pow
chore: tidy various files (#11490)
Diff
@@ -966,7 +966,7 @@ variable {p : ℕ} [hp : Fact p.Prime]
 -- Porting note: remove `set_option eqn_compiler.zeta true`
 
 instance complete : CauSeq.IsComplete ℚ_[p] norm where
-  isComplete := fun f => by
+  isComplete f := by
     have cau_seq_norm_e : IsCauSeq padicNormE f := fun ε hε => by
       have h := isCauSeq f ε (mod_cast hε)
       dsimp [norm] at h
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
@@ -64,7 +64,7 @@ p-adic, p adic, padic, norm, valuation, cauchy, completion, p-adic completion
 
 noncomputable section
 
-open Classical
+open scoped Classical
 
 open Nat multiplicity padicNorm CauSeq CauSeq.Completion Metric
 
@@ -675,7 +675,7 @@ theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicN
         · exact hN _ (lt_of_not_ge hle).le _ le_rfl⟩
 #align padic.rat_dense' Padic.rat_dense'
 
-open Classical
+open scoped Classical
 
 private theorem div_nat_pos (n : ℕ) : 0 < 1 / (n + 1 : ℚ) :=
   div_pos zero_lt_one (mod_cast succ_pos _)
chore: move Mathlib to v4.7.0-rc1 (#11162)

This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0 branch as we update to intermediate nightlies.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>

Diff
@@ -896,7 +896,7 @@ theorem norm_rat_le_one : ∀ {q : ℚ} (_ : ¬p ∣ q.den), ‖(q : ℚ_[p])‖
   | ⟨n, d, hn, hd⟩ => fun hq : ¬p ∣ d ↦
     if hnz : n = 0 then by
       have : (⟨n, d, hn, hd⟩ : ℚ) = 0 := Rat.zero_iff_num_zero.mpr hnz
-      norm_num [this]
+      set_option tactic.skipAssignedInstances false in norm_num [this]
     else by
       have hnz' : (⟨n, d, hn, hd⟩ : ℚ) ≠ 0 := mt Rat.zero_iff_num_zero.1 hnz
       rw [padicNormE.eq_padicNorm]
fix: correct statement of zpow_ofNat and ofNat_zsmul (#10969)

Previously these were syntactically identical to the corresponding zpow_coe_nat and coe_nat_zsmul lemmas, now they are about OfNat.ofNat.

Unfortunately, almost every call site uses the ofNat name to refer to Nat.cast, so the downstream proofs had to be adjusted too.

Diff
@@ -857,7 +857,7 @@ theorem norm_p_zpow (n : ℤ) : ‖(p : ℚ_[p]) ^ n‖ = (p : ℝ) ^ (-n) := by
 -- Porting note: Linter thinks this is a duplicate simp lemma, so `priority` is assigned
 @[simp (high)]
 theorem norm_p_pow (n : ℕ) : ‖(p : ℚ_[p]) ^ n‖ = (p : ℝ) ^ (-n : ℤ) := by
-  rw [← norm_p_zpow, zpow_ofNat]
+  rw [← norm_p_zpow, zpow_coe_nat]
 #align padic_norm_e.norm_p_pow padicNormE.norm_p_pow
 
 instance : NontriviallyNormedField ℚ_[p] :=
@@ -903,7 +903,7 @@ theorem norm_rat_le_one : ∀ {q : ℚ} (_ : ¬p ∣ q.den), ‖(q : ℚ_[p])‖
       norm_cast
       -- Porting note: `Nat.cast_zero` instead of another `norm_cast` call
       rw [padicNorm.eq_zpow_of_nonzero hnz', padicValRat, neg_sub,
-        padicValNat.eq_zero_of_not_dvd hq, Nat.cast_zero, zero_sub, zpow_neg, zpow_ofNat]
+        padicValNat.eq_zero_of_not_dvd hq, Nat.cast_zero, zero_sub, zpow_neg, zpow_coe_nat]
       apply inv_le_one
       · norm_cast
         apply one_le_pow
style: reduce spacing variation in "porting note" comments (#10886)

In this pull request, I have systematically eliminated the leading whitespace preceding the colon (:) within all unlabelled or unclassified porting notes. This adjustment facilitates a more efficient review process for the remaining notes by ensuring no entries are overlooked due to formatting inconsistencies.

Diff
@@ -809,7 +809,7 @@ namespace padicNormE
 section NormedSpace
 
 variable {p : ℕ} [hp : Fact p.Prime]
--- Porting note : Linter thinks this is a duplicate simp lemma, so `priority` is assigned
+-- Porting note: Linter thinks this is a duplicate simp lemma, so `priority` is assigned
 @[simp (high)]
 protected theorem mul (q r : ℚ_[p]) : ‖q * r‖ = ‖q‖ * ‖r‖ := by simp [Norm.norm, map_mul]
 #align padic_norm_e.mul padicNormE.mul
@@ -848,13 +848,13 @@ theorem norm_p_lt_one : ‖(p : ℚ_[p])‖ < 1 := by
   exact mod_cast hp.1.one_lt
 #align padic_norm_e.norm_p_lt_one padicNormE.norm_p_lt_one
 
--- Porting note : Linter thinks this is a duplicate simp lemma, so `priority` is assigned
+-- Porting note: Linter thinks this is a duplicate simp lemma, so `priority` is assigned
 @[simp (high)]
 theorem norm_p_zpow (n : ℤ) : ‖(p : ℚ_[p]) ^ n‖ = (p : ℝ) ^ (-n) := by
   rw [norm_zpow, norm_p, zpow_neg, inv_zpow]
 #align padic_norm_e.norm_p_zpow padicNormE.norm_p_zpow
 
--- Porting note : Linter thinks this is a duplicate simp lemma, so `priority` is assigned
+-- Porting note: Linter thinks this is a duplicate simp lemma, so `priority` is assigned
 @[simp (high)]
 theorem norm_p_pow (n : ℕ) : ‖(p : ℚ_[p]) ^ n‖ = (p : ℝ) ^ (-n : ℤ) := by
   rw [← norm_p_zpow, zpow_ofNat]
@@ -963,7 +963,7 @@ namespace Padic
 
 variable {p : ℕ} [hp : Fact p.Prime]
 
--- Porting note : remove `set_option eqn_compiler.zeta true`
+-- Porting note: remove `set_option eqn_compiler.zeta true`
 
 instance complete : CauSeq.IsComplete ℚ_[p] norm where
   isComplete := fun f => by
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -577,7 +577,7 @@ def padicNormE {p : ℕ} [hp : Fact p.Prime] : AbsoluteValue ℚ_[p] ℚ where
   toFun := Quotient.lift PadicSeq.norm <| @PadicSeq.norm_equiv _ _
   map_mul' q r := Quotient.inductionOn₂ q r <| PadicSeq.norm_mul
   nonneg' q := Quotient.inductionOn q <| PadicSeq.norm_nonneg
-  eq_zero' q := Quotient.inductionOn q <| fun r ↦ by
+  eq_zero' q := Quotient.inductionOn q fun r ↦ by
     rw [Padic.zero_def, Quotient.eq]
     exact PadicSeq.norm_zero_iff r
   add_le' q r := by
chore(*): use ∃ x ∈ s, _ instead of ∃ (x) (_ : x ∈ s), _ (#9215)

Follow-up #9184

Diff
@@ -656,7 +656,7 @@ variable {p : ℕ} [Fact p.Prime] (f : CauSeq _ (@padicNormE p _))
 
 theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicNormE (q - r : ℚ_[p]) < ε :=
   Quotient.inductionOn q fun q' ↦
-    have : ∃ N, ∀ (m) (_ : m ≥ N) (n) (_ : n ≥ N), padicNorm p (q' m - q' n) < ε := cauchy₂ _ hε
+    have : ∃ N, ∀ m ≥ N, ∀ n ≥ N, padicNorm p (q' m - q' n) < ε := cauchy₂ _ hε
     let ⟨N, hN⟩ := this
     ⟨q' N, by
       dsimp [padicNormE]
chore: split Algebra.CharP.Basic, reduce imports in RingTheory.Multiplicity (#8637)

This was adding unnecessary imports to Data.ZMod.Basic.

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

Diff
@@ -3,6 +3,7 @@ Copyright (c) 2018 Robert Y. Lewis. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Robert Y. Lewis
 -/
+import Mathlib.RingTheory.Valuation.Basic
 import Mathlib.NumberTheory.Padics.PadicNorm
 import Mathlib.Analysis.Normed.Field.Basic
 
chore: rename by_contra' to by_contra! (#8797)

To fit with the "please try harder" convention of ! tactics.

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

Diff
@@ -601,7 +601,7 @@ theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) :
     ∃ N, ∀ i ≥ N, padicNormE (Padic.mk f - f i : ℚ_[p]) < ε := by
   dsimp [padicNormE]
   change ∃ N, ∀ i ≥ N, (f - const _ (f i)).norm < ε
-  by_contra' h
+  by_contra! h
   cases' cauchy₂ f hε with N hN
   rcases h N with ⟨i, hi, hge⟩
   have hne : ¬f - const (padicNorm p) (f i) ≈ 0 := fun h ↦ by
chore: space after (#8178)

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

Diff
@@ -710,7 +710,7 @@ theorem exi_rat_seq_conv_cauchy : IsCauSeq (padicNorm p) (limSeq f) := fun ε h
     exact mod_cast this
   · apply lt_of_le_of_lt
     · apply padicNormE.add_le
-    · rw [←add_thirds ε]
+    · rw [← add_thirds ε]
       apply _root_.add_lt_add
       · suffices padicNormE (limSeq f j - f j + (f j - f (max N N2)) : ℚ_[p]) < ε / 3 + ε / 3 by
           simpa only [sub_add_sub_cancel]
@@ -992,7 +992,7 @@ theorem padicNormE_lim_le {f : CauSeq ℚ_[p] norm} {a : ℝ} (ha : 0 < a) (hf :
   -- Porting note: `Setoid.symm` cannot work out which `Setoid` to use, so instead swap the order
   -- now, I use a rewrite to swap it later
   obtain ⟨N, hN⟩ := (CauSeq.equiv_lim f) _ ha
-  rw [←sub_add_cancel f.lim (f N)]
+  rw [← sub_add_cancel f.lim (f N)]
   refine le_trans (padicNormE.nonarchimedean _ _) ?_
   rw [norm_sub_rev]
   exact max_le (le_of_lt (hN _ le_rfl)) (hf _)
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
@@ -233,8 +233,8 @@ theorem norm_eq_pow_val {f : PadicSeq p} (hf : ¬f ≈ 0) : f.norm = (p : ℚ) ^
 theorem val_eq_iff_norm_eq {f g : PadicSeq p} (hf : ¬f ≈ 0) (hg : ¬g ≈ 0) :
     f.valuation = g.valuation ↔ f.norm = g.norm := by
   rw [norm_eq_pow_val hf, norm_eq_pow_val hg, ← neg_inj, zpow_inj]
-  · exact_mod_cast (Fact.out : p.Prime).pos
-  · exact_mod_cast (Fact.out : p.Prime).ne_one
+  · exact mod_cast (Fact.out : p.Prime).pos
+  · exact mod_cast (Fact.out : p.Prime).ne_one
 #align padic_seq.val_eq_iff_norm_eq PadicSeq.val_eq_iff_norm_eq
 
 end Valuation
@@ -677,7 +677,7 @@ theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicN
 open Classical
 
 private theorem div_nat_pos (n : ℕ) : 0 < 1 / (n + 1 : ℚ) :=
-  div_pos zero_lt_one (by exact_mod_cast succ_pos _)
+  div_pos zero_lt_one (mod_cast succ_pos _)
 
 /-- `limSeq f`, for `f` a Cauchy sequence of `p`-adic numbers, is a sequence of rationals with the
 same limit point as `f`. -/
@@ -689,10 +689,10 @@ theorem exi_rat_seq_conv {ε : ℚ} (hε : 0 < ε) :
     ∃ N, ∀ i ≥ N, padicNormE (f i - (limSeq f i : ℚ_[p]) : ℚ_[p]) < ε := by
   refine' (exists_nat_gt (1 / ε)).imp fun N hN i hi ↦ _
   have h := Classical.choose_spec (rat_dense' (f i) (div_nat_pos i))
-  refine' lt_of_lt_of_le h ((div_le_iff' <| by exact_mod_cast succ_pos _).mpr _)
+  refine' lt_of_lt_of_le h ((div_le_iff' <| mod_cast succ_pos _).mpr _)
   rw [right_distrib]
   apply le_add_of_le_of_nonneg
-  · exact (div_le_iff hε).mp (le_trans (le_of_lt hN) (by exact_mod_cast hi))
+  · exact (div_le_iff hε).mp (le_trans (le_of_lt hN) (mod_cast hi))
   · apply le_of_lt
     simpa
 #align padic.exi_rat_seq_conv Padic.exi_rat_seq_conv
@@ -707,7 +707,7 @@ theorem exi_rat_seq_conv_cauchy : IsCauSeq (padicNorm p) (limSeq f) := fun ε h
     padicNormE (limSeq f j - f (max N N2) + (f (max N N2) - limSeq f (max N N2)) : ℚ_[p]) < ε by
     ring_nf at this ⊢
     rw [← padicNormE.eq_padic_norm']
-    exact_mod_cast this
+    exact mod_cast this
   · apply lt_of_le_of_lt
     · apply padicNormE.add_le
     · rw [←add_thirds ε]
@@ -718,10 +718,10 @@ theorem exi_rat_seq_conv_cauchy : IsCauSeq (padicNorm p) (limSeq f) := fun ε h
         · apply padicNormE.add_le
         · apply _root_.add_lt_add
           · rw [padicNormE.map_sub]
-            apply_mod_cast hN j
+            apply mod_cast hN j
             exact le_of_max_le_left hj
           · exact hN2 _ (le_of_max_le_right hj) _ (le_max_right _ _)
-      · apply_mod_cast hN (max N N2)
+      · apply mod_cast hN (max N N2)
         apply le_max_left
 #align padic.exi_rat_seq_conv_cauchy Padic.exi_rat_seq_conv_cauchy
 
@@ -767,12 +767,12 @@ instance metricSpace : MetricSpace ℚ_[p] where
   dist_comm x y := by simp [dist, ← padicNormE.map_neg (x - y : ℚ_[p])]
   dist_triangle x y z := by
     dsimp [dist]
-    exact_mod_cast padicNormE.sub_le x y z
+    exact mod_cast padicNormE.sub_le x y z
   eq_of_dist_eq_zero := by
     dsimp [dist]; intro _ _ h
     apply eq_of_sub_eq_zero
     apply padicNormE.eq_zero.1
-    exact_mod_cast h
+    exact mod_cast h
   -- Porting note: added because autoparam was not ported
   edist_dist := by intros; exact (ENNReal.ofReal_eq_coe_nnreal _).symm
 
@@ -818,13 +818,13 @@ protected theorem is_norm (q : ℚ_[p]) : ↑(padicNormE q) = ‖q‖ := rfl
 
 theorem nonarchimedean (q r : ℚ_[p]) : ‖q + r‖ ≤ max ‖q‖ ‖r‖ := by
   dsimp [norm]
-  exact_mod_cast nonarchimedean' _ _
+  exact mod_cast nonarchimedean' _ _
 #align padic_norm_e.nonarchimedean padicNormE.nonarchimedean
 
 theorem add_eq_max_of_ne {q r : ℚ_[p]} (h : ‖q‖ ≠ ‖r‖) : ‖q + r‖ = max ‖q‖ ‖r‖ := by
   dsimp [norm] at h ⊢
-  have : padicNormE q ≠ padicNormE r := by exact_mod_cast h
-  exact_mod_cast add_eq_max_of_ne' this
+  have : padicNormE q ≠ padicNormE r := mod_cast h
+  exact mod_cast add_eq_max_of_ne' this
 #align padic_norm_e.add_eq_max_of_ne padicNormE.add_eq_max_of_ne
 
 @[simp]
@@ -844,7 +844,7 @@ theorem norm_p : ‖(p : ℚ_[p])‖ = (p : ℝ)⁻¹ := by
 theorem norm_p_lt_one : ‖(p : ℚ_[p])‖ < 1 := by
   rw [norm_p]
   apply inv_lt_one
-  exact_mod_cast hp.1.one_lt
+  exact mod_cast hp.1.one_lt
 #align padic_norm_e.norm_p_lt_one padicNormE.norm_p_lt_one
 
 -- Porting note : Linter thinks this is a duplicate simp lemma, so `priority` is assigned
@@ -864,7 +864,7 @@ instance : NontriviallyNormedField ℚ_[p] :=
     non_trivial :=
       ⟨p⁻¹, by
         rw [norm_inv, norm_p, inv_inv]
-        exact_mod_cast hp.1.one_lt⟩ }
+        exact mod_cast hp.1.one_lt⟩ }
 
 protected theorem image {q : ℚ_[p]} : q ≠ 0 → ∃ n : ℤ, ‖q‖ = ↑((p : ℚ) ^ (-n)) :=
   Quotient.inductionOn q fun f hf ↦
@@ -923,7 +923,7 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
     calc
       ‖(k : ℚ_[p])‖ = ‖((k : ℚ) : ℚ_[p])‖ := by norm_cast
       _ = padicNorm p k := (padicNormE.eq_padicNorm _)
-      _ = 1 := by exact_mod_cast (int_eq_one_iff k).mpr h
+      _ = 1 := mod_cast (int_eq_one_iff k).mpr h
   · rintro ⟨x, rfl⟩
     push_cast
     rw [padicNormE.mul]
@@ -933,7 +933,7 @@ theorem norm_int_lt_one_iff_dvd (k : ℤ) : ‖(k : ℚ_[p])‖ < 1 ↔ ↑p ∣
       _ < 1 := by
         rw [mul_one, padicNormE.norm_p]
         apply inv_lt_one
-        exact_mod_cast hp.1.one_lt
+        exact mod_cast hp.1.one_lt
 #align padic_norm_e.norm_int_lt_one_iff_dvd padicNormE.norm_int_lt_one_iff_dvd
 
 theorem norm_int_le_pow_iff_dvd (k : ℤ) (n : ℕ) :
@@ -967,9 +967,9 @@ variable {p : ℕ} [hp : Fact p.Prime]
 instance complete : CauSeq.IsComplete ℚ_[p] norm where
   isComplete := fun f => by
     have cau_seq_norm_e : IsCauSeq padicNormE f := fun ε hε => by
-      have h := isCauSeq f ε (by exact_mod_cast hε)
+      have h := isCauSeq f ε (mod_cast hε)
       dsimp [norm] at h
-      exact_mod_cast h
+      exact mod_cast h
     -- Porting note: Padic.complete' works with `f i - q`, but the goal needs `q - f i`,
     -- using `rewrite [padicNormE.map_sub]` causes time out, so a separate lemma is created
     cases' Padic.complete'' ⟨f, cau_seq_norm_e⟩ with q hq
@@ -984,7 +984,7 @@ instance complete : CauSeq.IsComplete ℚ_[p] norm where
     change norm (f i - q) < ε
     refine lt_trans ?_ hε'.2
     dsimp [norm]
-    exact_mod_cast h
+    exact mod_cast h
 #align padic.complete Padic.complete
 
 theorem padicNormE_lim_le {f : CauSeq ℚ_[p] norm} {a : ℝ} (ha : 0 < a) (hf : ∀ i, ‖f i‖ ≤ a) :
@@ -1062,9 +1062,9 @@ theorem norm_eq_pow_val {x : ℚ_[p]} : x ≠ 0 → ‖x‖ = (p : ℝ) ^ (-x.va
 
 @[simp]
 theorem valuation_p : valuation (p : ℚ_[p]) = 1 := by
-  have h : (1 : ℝ) < p := by exact_mod_cast (Fact.out : p.Prime).one_lt
+  have h : (1 : ℝ) < p := mod_cast (Fact.out : p.Prime).one_lt
   refine' neg_injective ((zpow_strictMono h).injective <| (norm_eq_pow_val _).symm.trans _)
-  · exact_mod_cast (Fact.out : p.Prime).ne_zero
+  · exact mod_cast (Fact.out : p.Prime).ne_zero
   · simp
 #align padic.valuation_p Padic.valuation_p
 
@@ -1166,7 +1166,7 @@ theorem norm_le_pow_iff_norm_lt_pow_add_one (x : ℚ_[p]) (n : ℤ) :
   by_cases hx0 : x = 0
   · simp [hx0, norm_zero, aux, le_of_lt (aux _)]
   rw [norm_eq_pow_val hx0]
-  have h1p : 1 < (p : ℝ) := by exact_mod_cast hp.1.one_lt
+  have h1p : 1 < (p : ℝ) := mod_cast hp.1.one_lt
   have H := zpow_strictMono h1p
   rw [H.le_iff_le, H.lt_iff_lt, Int.lt_add_one_iff]
 #align padic.norm_le_pow_iff_norm_lt_pow_add_one Padic.norm_le_pow_iff_norm_lt_pow_add_one
chore(Complex/Exponential,PadicNumbers): minor golf (#7303)

Cherry-picked from #7128

Diff
@@ -604,9 +604,8 @@ theorem defn (f : PadicSeq p) {ε : ℚ} (hε : 0 < ε) :
   by_contra' h
   cases' cauchy₂ f hε with N hN
   rcases h N with ⟨i, hi, hge⟩
-  have hne : ¬f - const (padicNorm p) (f i) ≈ 0 := by
-    intro h
-    unfold PadicSeq.norm at hge; split_ifs at hge
+  have hne : ¬f - const (padicNorm p) (f i) ≈ 0 := fun h ↦ by
+    rw [PadicSeq.norm, dif_pos h] at hge
     exact not_lt_of_ge hge hε
   unfold PadicSeq.norm at hge; split_ifs at hge; exact not_le_of_gt hε hge
   apply not_le_of_gt _ hge
feat: fix norm num with arguments (#6600)

norm_num was passing the wrong syntax node to elabSimpArgs when elaborating, which essentially had the effect of ignoring all arguments it was passed, i.e. norm_num [add_comm] would not try to commute addition in the simp step. The fix itself is very simple (though not obvious to debug!), probably using TSyntax more would help avoid such issues in future.

Due to this bug many norm_num [blah] became rw [blah]; norm_num or similar, sometimes with porting notes, sometimes not, we fix these porting notes and other regressions during the port also.

Interestingly cancel_denoms uses norm_num [<- mul_assoc] internally, so cancel_denoms also got stronger with this change.

Diff
@@ -896,7 +896,7 @@ theorem norm_rat_le_one : ∀ {q : ℚ} (_ : ¬p ∣ q.den), ‖(q : ℚ_[p])‖
   | ⟨n, d, hn, hd⟩ => fun hq : ¬p ∣ d ↦
     if hnz : n = 0 then by
       have : (⟨n, d, hn, hd⟩ : ℚ) = 0 := Rat.zero_iff_num_zero.mpr hnz
-      rw [this]; norm_num
+      norm_num [this]
     else by
       have hnz' : (⟨n, d, hn, hd⟩ : ℚ) ≠ 0 := mt Rat.zero_iff_num_zero.1 hnz
       rw [padicNormE.eq_padicNorm]
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
@@ -281,11 +281,11 @@ variable {p : ℕ} [hp : Fact p.Prime]
 theorem norm_mul (f g : PadicSeq p) : (f * g).norm = f.norm * g.norm :=
   if hf : f ≈ 0 then by
     have hg : f * g ≈ 0 := mul_equiv_zero' _ hf
-    simp only [hf, hg, norm, dif_pos, MulZeroClass.zero_mul]
+    simp only [hf, hg, norm, dif_pos, zero_mul]
   else
     if hg : g ≈ 0 then by
       have hf : f * g ≈ 0 := mul_equiv_zero _ hg
-      simp only [hf, hg, norm, dif_pos, MulZeroClass.mul_zero]
+      simp only [hf, hg, norm, dif_pos, mul_zero]
     else by
       unfold norm
       split_ifs with hfg
@@ -1119,9 +1119,9 @@ theorem AddValuation.map_mul (x y : ℚ_[p]) :
     addValuationDef (x * y : ℚ_[p]) = addValuationDef x + addValuationDef y := by
   simp only [addValuationDef]
   by_cases hx : x = 0
-  · rw [hx, if_pos (Eq.refl _), MulZeroClass.zero_mul, if_pos (Eq.refl _), WithTop.top_add]
+  · rw [hx, if_pos (Eq.refl _), zero_mul, if_pos (Eq.refl _), WithTop.top_add]
   · by_cases hy : y = 0
-    · rw [hy, if_pos (Eq.refl _), MulZeroClass.mul_zero, if_pos (Eq.refl _), WithTop.add_top]
+    · rw [hy, if_pos (Eq.refl _), mul_zero, if_pos (Eq.refl _), WithTop.add_top]
     · rw [if_neg hx, if_neg hy, if_neg (mul_ne_zero hx hy), ← WithTop.coe_add, WithTop.coe_eq_coe,
         valuation_map_mul hx hy]
 #align padic.add_valuation.map_mul Padic.AddValuation.map_mul
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) 2018 Robert Y. Lewis. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Robert Y. Lewis
-
-! This file was ported from Lean 3 source module number_theory.padics.padic_numbers
-! leanprover-community/mathlib commit b9b2114f7711fec1c1e055d507f082f8ceb2c3b7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.NumberTheory.Padics.PadicNorm
 import Mathlib.Analysis.Normed.Field.Basic
 
+#align_import number_theory.padics.padic_numbers from "leanprover-community/mathlib"@"b9b2114f7711fec1c1e055d507f082f8ceb2c3b7"
+
 /-!
 # p-adic numbers
 
chore: fix grammar in docs (#5668)
Diff
@@ -43,7 +43,7 @@ A small special-purpose simplification tactic, `padic_index_simp`, is used to ma
 indices in the proof that the norm extends.
 
 `padicNormE` is the rational-valued `p`-adic norm on `ℚ_[p]`.
-To instantiate `ℚ_[p]` as a normed field, we must cast this into a `ℝ`-valued norm.
+To instantiate `ℚ_[p]` as a normed field, we must cast this into an `ℝ`-valued norm.
 The `ℝ`-valued norm, using notation `‖ ‖` from normed spaces,
 is the canonical representation of this norm.
 
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
@@ -450,8 +450,8 @@ theorem add_eq_max_of_ne {f g : PadicSeq p} (hfgne : f.norm ≠ g.norm) :
       have h2 : g.norm = 0 := (norm_zero_iff _).2 hg
       rw [h1, h2, max_eq_left (norm_nonneg _)]
     else by
-      unfold norm at hfgne⊢; split_ifs  at hfgne⊢
-      -- Porting note: originally `padic_index_simp [hfg, hf, hg] at hfgne⊢`
+      unfold norm at hfgne ⊢; split_ifs at hfgne ⊢
+      -- Porting note: originally `padic_index_simp [hfg, hf, hg] at hfgne ⊢`
       rw [lift_index_left hf, lift_index_right hg] at hfgne
       rw [lift_index_left_left hfg, lift_index_left hf, lift_index_right hg]
       exact padicNorm.add_eq_max_of_ne hfgne
@@ -826,7 +826,7 @@ theorem nonarchimedean (q r : ℚ_[p]) : ‖q + r‖ ≤ max ‖q‖ ‖r‖ :=
 #align padic_norm_e.nonarchimedean padicNormE.nonarchimedean
 
 theorem add_eq_max_of_ne {q r : ℚ_[p]} (h : ‖q‖ ≠ ‖r‖) : ‖q + r‖ = max ‖q‖ ‖r‖ := by
-  dsimp [norm] at h⊢
+  dsimp [norm] at h ⊢
   have : padicNormE q ≠ padicNormE r := by exact_mod_cast h
   exact_mod_cast add_eq_max_of_ne' this
 #align padic_norm_e.add_eq_max_of_ne padicNormE.add_eq_max_of_ne
@@ -980,7 +980,7 @@ instance complete : CauSeq.IsComplete ℚ_[p] norm where
     exists q
     intro ε hε
     cases' exists_rat_btwn hε with ε' hε'
-    norm_cast  at hε'
+    norm_cast at hε'
     cases' hq ε' hε'.1 with N hN
     exists N
     intro i hi
chore: cleanup a change at porting note (#5243)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Diff
@@ -663,7 +663,8 @@ theorem rat_dense' (q : ℚ_[p]) {ε : ℚ} (hε : 0 < ε) : ∃ r : ℚ, padicN
     let ⟨N, hN⟩ := this
     ⟨q' N, by
       dsimp [padicNormE]
-      -- Porting note: `change` → `convert_to` and `PadicSeq p` type annotation
+      -- Porting note: `change` → `convert_to` (`change` times out!)
+      -- and add `PadicSeq p` type annotation
       convert_to PadicSeq.norm (q' - const _ (q' N) : PadicSeq p) < ε
       cases' Decidable.em (q' - const (padicNorm p) (q' N) ≈ 0) with heq hne'
       · simpa only [heq, PadicSeq.norm, dif_pos]
chore: formatting issues (#4947)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -968,26 +968,26 @@ variable {p : ℕ} [hp : Fact p.Prime]
 -- Porting note : remove `set_option eqn_compiler.zeta true`
 
 instance complete : CauSeq.IsComplete ℚ_[p] norm where
-isComplete := fun f => by
-  have cau_seq_norm_e : IsCauSeq padicNormE f := fun ε hε => by
-    have h := isCauSeq f ε (by exact_mod_cast hε)
-    dsimp [norm] at h
+  isComplete := fun f => by
+    have cau_seq_norm_e : IsCauSeq padicNormE f := fun ε hε => by
+      have h := isCauSeq f ε (by exact_mod_cast hε)
+      dsimp [norm] at h
+      exact_mod_cast h
+    -- Porting note: Padic.complete' works with `f i - q`, but the goal needs `q - f i`,
+    -- using `rewrite [padicNormE.map_sub]` causes time out, so a separate lemma is created
+    cases' Padic.complete'' ⟨f, cau_seq_norm_e⟩ with q hq
+    exists q
+    intro ε hε
+    cases' exists_rat_btwn hε with ε' hε'
+    norm_cast  at hε'
+    cases' hq ε' hε'.1 with N hN
+    exists N
+    intro i hi
+    have h := hN i hi
+    change norm (f i - q) < ε
+    refine lt_trans ?_ hε'.2
+    dsimp [norm]
     exact_mod_cast h
-  -- Porting note: Padic.complete' works with `f i - q`, but the goal needs `q - f i`,
-  -- using `rewrite [padicNormE.map_sub]` causes time out, so a separate lemma is created
-  cases' Padic.complete'' ⟨f, cau_seq_norm_e⟩ with q hq
-  exists q
-  intro ε hε
-  cases' exists_rat_btwn hε with ε' hε'
-  norm_cast  at hε'
-  cases' hq ε' hε'.1 with N hN
-  exists N
-  intro i hi
-  have h := hN i hi
-  change norm (f i - q) < ε
-  refine lt_trans ?_ hε'.2
-  dsimp [norm]
-  exact_mod_cast h
 #align padic.complete Padic.complete
 
 theorem padicNormE_lim_le {f : CauSeq ℚ_[p] norm} {a : ℝ} (ha : 0 < a) (hf : ∀ i, ‖f i‖ ≤ a) :
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -217,7 +217,7 @@ variable {p : ℕ} [Fact p.Prime]
 
 
 /-- The `p`-adic valuation on `ℚ` lifts to `PadicSeq p`.
-`valuation f` is defined to be the valuation of the (`ℚ`-valued) stationary point of `f`. -/
+`Valuation f` is defined to be the valuation of the (`ℚ`-valued) stationary point of `f`. -/
 def valuation (f : PadicSeq p) : ℤ :=
   if hf : f ≈ 0 then 0 else padicValRat p (f (stationaryPoint hf))
 #align padic_seq.valuation PadicSeq.valuation
@@ -262,8 +262,8 @@ private unsafe def index_simp_core (hh hf hg : expr)
   hs (tactic.simp_hyp sl [])
 #align index_simp_core index_simp_core
 
-/-- This is a special-purpose tactic that lifts `padic_norm (f (stationary_point f))` to
-`padic_norm (f (max _ _ _))`. -/
+/-- This is a special-purpose tactic that lifts `padicNorm (f (stationary_point f))` to
+`padicNorm (f (max _ _ _))`. -/
 unsafe def tactic.interactive.padic_index_simp (l : interactive.parse interactive.types.pexpr_list)
     (at_ : interactive.parse interactive.types.location) : tactic Unit := do
   let [h, f, g] ← l.mapM tactic.i_to_expr
feat: port NumberTheory.Padics.PadicNumbers (#3095)

Co-authored-by: int-y1 <jason_yuen2007@hotmail.com> Co-authored-by: Jujian Zhang <jujian.zhang1998@outlook.com> Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com>

Dependencies 10 + 624

625 files ported (98.4%)
272904 lines ported (98.1%)
Show graph

The unported dependencies are

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