data.real.irrationalMathlib.Data.Real.Irrational

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -109,7 +109,7 @@ theorem irrational_sqrt_of_multiplicity_odd (m : ℤ) (hm : 0 < m) (p : ℕ) [hp
 
 #print Nat.Prime.irrational_sqrt /-
 theorem Nat.Prime.irrational_sqrt {p : ℕ} (hp : Nat.Prime p) : Irrational (sqrt p) :=
-  @irrational_sqrt_of_multiplicity_odd p (Int.coe_nat_pos.2 hp.Pos) p ⟨hp⟩ <| by
+  @irrational_sqrt_of_multiplicity_odd p (Int.natCast_pos.2 hp.Pos) p ⟨hp⟩ <| by
     simp [multiplicity_self
           (mt isUnit_iff_dvd_one.1 (mt Int.natCast_dvd_natCast.1 hp.not_dvd_one) : _)] <;>
       rfl
Diff
@@ -61,12 +61,12 @@ theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n
   by
   rintro ⟨⟨N, D, P, C⟩, rfl⟩
   rw [← cast_pow] at hxr
-  have c1 : ((D : ℤ) : ℝ) ≠ 0 := by rw [Int.cast_ne_zero, Int.coe_nat_ne_zero]; exact ne_of_gt P
+  have c1 : ((D : ℤ) : ℝ) ≠ 0 := by rw [Int.cast_ne_zero, Int.natCast_ne_zero]; exact ne_of_gt P
   have c2 : ((D : ℤ) : ℝ) ^ n ≠ 0 := pow_ne_zero _ c1
   rw [num_denom', cast_pow, cast_mk, div_pow, div_eq_iff_mul_eq c2, ← Int.cast_pow, ← Int.cast_pow,
     ← Int.cast_mul, Int.cast_inj] at hxr
   have hdivn : ↑D ^ n ∣ N ^ n := Dvd.intro_left m hxr
-  rw [← Int.dvd_natAbs, ← Int.coe_nat_pow, Int.coe_nat_dvd, Int.natAbs_pow,
+  rw [← Int.dvd_natAbs, ← Int.coe_nat_pow, Int.natCast_dvd_natCast, Int.natAbs_pow,
     Nat.pow_dvd_pow_iff hnpos] at hdivn
   obtain rfl : D = 1 := by rw [← Nat.gcd_eq_right hdivn, C.gcd_eq_one]
   refine' hv ⟨N, _⟩
@@ -84,7 +84,8 @@ theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (
   rcases Nat.eq_zero_or_pos n with (rfl | hnpos)
   · rw [eq_comm, pow_zero, ← Int.cast_one, Int.cast_inj] at hxr
     simpa [hxr,
-      multiplicity.one_right (mt isUnit_iff_dvd_one.1 (mt Int.coe_nat_dvd.1 hp.1.not_dvd_one)),
+      multiplicity.one_right
+        (mt isUnit_iff_dvd_one.1 (mt Int.natCast_dvd_natCast.1 hp.1.not_dvd_one)),
       Nat.zero_mod] using hv
   refine' irrational_nrt_of_notint_nrt _ _ hxr _ hnpos
   rintro ⟨y, rfl⟩
@@ -109,7 +110,8 @@ theorem irrational_sqrt_of_multiplicity_odd (m : ℤ) (hm : 0 < m) (p : ℕ) [hp
 #print Nat.Prime.irrational_sqrt /-
 theorem Nat.Prime.irrational_sqrt {p : ℕ} (hp : Nat.Prime p) : Irrational (sqrt p) :=
   @irrational_sqrt_of_multiplicity_odd p (Int.coe_nat_pos.2 hp.Pos) p ⟨hp⟩ <| by
-    simp [multiplicity_self (mt isUnit_iff_dvd_one.1 (mt Int.coe_nat_dvd.1 hp.not_dvd_one) : _)] <;>
+    simp [multiplicity_self
+          (mt isUnit_iff_dvd_one.1 (mt Int.natCast_dvd_natCast.1 hp.not_dvd_one) : _)] <;>
       rfl
 #align nat.prime.irrational_sqrt Nat.Prime.irrational_sqrt
 -/
@@ -177,7 +179,7 @@ theorem ne_rat (h : Irrational x) (q : ℚ) : x ≠ q := fun hq => h ⟨q, hq.sy
 -/
 
 #print Irrational.ne_int /-
-theorem ne_int (h : Irrational x) (m : ℤ) : x ≠ m := by rw [← Rat.cast_coe_int]; exact h.ne_rat _
+theorem ne_int (h : Irrational x) (m : ℤ) : x ≠ m := by rw [← Rat.cast_intCast]; exact h.ne_rat _
 #align irrational.ne_int Irrational.ne_int
 -/
 
@@ -356,25 +358,25 @@ theorem of_rat_sub (h : Irrational (q - x)) : Irrational x :=
 
 #print Irrational.sub_int /-
 theorem sub_int (h : Irrational x) (m : ℤ) : Irrational (x - m) := by
-  simpa only [Rat.cast_coe_int] using h.sub_rat m
+  simpa only [Rat.cast_intCast] using h.sub_rat m
 #align irrational.sub_int Irrational.sub_int
 -/
 
 #print Irrational.int_sub /-
 theorem int_sub (h : Irrational x) (m : ℤ) : Irrational (m - x) := by
-  simpa only [Rat.cast_coe_int] using h.rat_sub m
+  simpa only [Rat.cast_intCast] using h.rat_sub m
 #align irrational.int_sub Irrational.int_sub
 -/
 
 #print Irrational.of_sub_int /-
 theorem of_sub_int (m : ℤ) (h : Irrational (x - m)) : Irrational x :=
-  of_sub_rat m <| by rwa [Rat.cast_coe_int]
+  of_sub_rat m <| by rwa [Rat.cast_intCast]
 #align irrational.of_sub_int Irrational.of_sub_int
 -/
 
 #print Irrational.of_int_sub /-
 theorem of_int_sub (m : ℤ) (h : Irrational (m - x)) : Irrational x :=
-  of_rat_sub m <| by rwa [Rat.cast_coe_int]
+  of_rat_sub m <| by rwa [Rat.cast_intCast]
 #align irrational.of_int_sub Irrational.of_int_sub
 -/
 
@@ -479,13 +481,13 @@ theorem of_nat_mul (m : ℕ) (h : Irrational (m * x)) : Irrational x :=
 
 #print Irrational.mul_nat /-
 theorem mul_nat (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (x * m) :=
-  h.mul_int <| Int.coe_nat_ne_zero.2 hm
+  h.mul_int <| Int.natCast_ne_zero.2 hm
 #align irrational.mul_nat Irrational.mul_nat
 -/
 
 #print Irrational.nat_mul /-
 theorem nat_mul (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m * x) :=
-  h.int_mul <| Int.coe_nat_ne_zero.2 hm
+  h.int_mul <| Int.natCast_ne_zero.2 hm
 #align irrational.nat_mul Irrational.nat_mul
 -/
 
@@ -584,7 +586,7 @@ theorem nat_div (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m / x)
 
 #print Irrational.div_nat /-
 theorem div_nat (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (x / m) :=
-  h.div_int <| by rwa [Int.coe_nat_ne_zero]
+  h.div_int <| by rwa [Int.natCast_ne_zero]
 #align irrational.div_nat Irrational.div_nat
 -/
 
@@ -608,13 +610,13 @@ theorem of_mul_self (h : Irrational (x * x)) : Irrational x :=
 #print Irrational.of_pow /-
 theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
   | 0 => fun h => by rw [pow_zero] at h; exact (h ⟨1, cast_one⟩).elim
-  | n + 1 => fun h => by rw [pow_succ] at h; exact h.mul_cases.elim id (of_pow n)
+  | n + 1 => fun h => by rw [pow_succ'] at h; exact h.mul_cases.elim id (of_pow n)
 #align irrational.of_pow Irrational.of_pow
 -/
 
 #print Irrational.of_zpow /-
 theorem of_zpow : ∀ m : ℤ, Irrational (x ^ m) → Irrational x
-  | (n : ℕ) => fun h => by rw [zpow_coe_nat] at h; exact h.of_pow _
+  | (n : ℕ) => fun h => by rw [zpow_natCast] at h; exact h.of_pow _
   | -[n+1] => fun h => by rw [zpow_negSucc] at h; exact h.of_inv.of_pow _
 #align irrational.of_zpow Irrational.of_zpow
 -/
Diff
@@ -60,14 +60,14 @@ theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n
     (hv : ¬∃ y : ℤ, x = y) (hnpos : 0 < n) : Irrational x :=
   by
   rintro ⟨⟨N, D, P, C⟩, rfl⟩
-  rw [← cast_pow] at hxr 
+  rw [← cast_pow] at hxr
   have c1 : ((D : ℤ) : ℝ) ≠ 0 := by rw [Int.cast_ne_zero, Int.coe_nat_ne_zero]; exact ne_of_gt P
   have c2 : ((D : ℤ) : ℝ) ^ n ≠ 0 := pow_ne_zero _ c1
   rw [num_denom', cast_pow, cast_mk, div_pow, div_eq_iff_mul_eq c2, ← Int.cast_pow, ← Int.cast_pow,
-    ← Int.cast_mul, Int.cast_inj] at hxr 
+    ← Int.cast_mul, Int.cast_inj] at hxr
   have hdivn : ↑D ^ n ∣ N ^ n := Dvd.intro_left m hxr
   rw [← Int.dvd_natAbs, ← Int.coe_nat_pow, Int.coe_nat_dvd, Int.natAbs_pow,
-    Nat.pow_dvd_pow_iff hnpos] at hdivn 
+    Nat.pow_dvd_pow_iff hnpos] at hdivn
   obtain rfl : D = 1 := by rw [← Nat.gcd_eq_right hdivn, C.gcd_eq_one]
   refine' hv ⟨N, _⟩
   rw [num_denom', Int.ofNat_one, mk_eq_div, Int.cast_one, div_one, cast_coe_int]
@@ -82,16 +82,16 @@ theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (
     (hv : (multiplicity (p : ℤ) m).get (finite_int_iff.2 ⟨hp.1.ne_one, hm⟩) % n ≠ 0) :
     Irrational x := by
   rcases Nat.eq_zero_or_pos n with (rfl | hnpos)
-  · rw [eq_comm, pow_zero, ← Int.cast_one, Int.cast_inj] at hxr 
+  · rw [eq_comm, pow_zero, ← Int.cast_one, Int.cast_inj] at hxr
     simpa [hxr,
       multiplicity.one_right (mt isUnit_iff_dvd_one.1 (mt Int.coe_nat_dvd.1 hp.1.not_dvd_one)),
       Nat.zero_mod] using hv
   refine' irrational_nrt_of_notint_nrt _ _ hxr _ hnpos
   rintro ⟨y, rfl⟩
-  rw [← Int.cast_pow, Int.cast_inj] at hxr ; subst m
-  have : y ≠ 0 := by rintro rfl; rw [zero_pow hnpos] at hm ; exact hm rfl
+  rw [← Int.cast_pow, Int.cast_inj] at hxr; subst m
+  have : y ≠ 0 := by rintro rfl; rw [zero_pow hnpos] at hm; exact hm rfl
   erw [multiplicity.pow' (Nat.prime_iff_prime_int.1 hp.1) (finite_int_iff.2 ⟨hp.1.ne_one, this⟩),
-    Nat.mul_mod_right] at hv 
+    Nat.mul_mod_right] at hv
   exact hv rfl
 #align irrational_nrt_of_n_not_dvd_multiplicity irrational_nrt_of_n_not_dvd_multiplicity
 -/
@@ -138,7 +138,7 @@ theorem irrational_sqrt_rat_iff (q : ℚ) :
             (exists_mul_self _).1
               ⟨r, by
                 rwa [eq_comm, sqrt_eq_iff_mul_self_eq (cast_nonneg.2 H2), ← cast_mul,
-                      Rat.cast_inj] at hr  <;>
+                      Rat.cast_inj] at hr <;>
                     rw [← hr] <;>
                   exact Real.sqrt_nonneg _⟩)
         ⟨H1, H2⟩
@@ -262,7 +262,7 @@ theorem add_rat (h : Irrational x) : Irrational (x + q) :=
 -/
 
 #print Irrational.of_int_add /-
-theorem of_int_add (m : ℤ) (h : Irrational (m + x)) : Irrational x := by rw [← cast_coe_int] at h ;
+theorem of_int_add (m : ℤ) (h : Irrational (m + x)) : Irrational x := by rw [← cast_coe_int] at h;
   exact h.of_rat_add m
 #align irrational.of_int_add Irrational.of_int_add
 -/
@@ -607,15 +607,15 @@ theorem of_mul_self (h : Irrational (x * x)) : Irrational x :=
 
 #print Irrational.of_pow /-
 theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
-  | 0 => fun h => by rw [pow_zero] at h ; exact (h ⟨1, cast_one⟩).elim
-  | n + 1 => fun h => by rw [pow_succ] at h ; exact h.mul_cases.elim id (of_pow n)
+  | 0 => fun h => by rw [pow_zero] at h; exact (h ⟨1, cast_one⟩).elim
+  | n + 1 => fun h => by rw [pow_succ] at h; exact h.mul_cases.elim id (of_pow n)
 #align irrational.of_pow Irrational.of_pow
 -/
 
 #print Irrational.of_zpow /-
 theorem of_zpow : ∀ m : ℤ, Irrational (x ^ m) → Irrational x
-  | (n : ℕ) => fun h => by rw [zpow_coe_nat] at h ; exact h.of_pow _
-  | -[n+1] => fun h => by rw [zpow_negSucc] at h ; exact h.of_inv.of_pow _
+  | (n : ℕ) => fun h => by rw [zpow_coe_nat] at h; exact h.of_pow _
+  | -[n+1] => fun h => by rw [zpow_negSucc] at h; exact h.of_inv.of_pow _
 #align irrational.of_zpow Irrational.of_zpow
 -/
 
@@ -639,7 +639,7 @@ theorem one_lt_natDegree_of_irrational_root (hx : Irrational x) (p_nonzero : p 
   rcases em (a = 0) with (rfl | ha)
   · obtain rfl : b = 0 := by simpa
     simpa using p_nonzero
-  · rw [mul_comm, ← eq_div_iff_mul_eq, eq_comm] at this 
+  · rw [mul_comm, ← eq_div_iff_mul_eq, eq_comm] at this
     refine' hx ⟨-b / a, _⟩
     assumption_mod_cast; assumption_mod_cast
 #align one_lt_nat_degree_of_irrational_root one_lt_natDegree_of_irrational_root
Diff
@@ -614,7 +614,7 @@ theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
 
 #print Irrational.of_zpow /-
 theorem of_zpow : ∀ m : ℤ, Irrational (x ^ m) → Irrational x
-  | (n : ℕ) => fun h => by rw [zpow_ofNat] at h ; exact h.of_pow _
+  | (n : ℕ) => fun h => by rw [zpow_coe_nat] at h ; exact h.of_pow _
   | -[n+1] => fun h => by rw [zpow_negSucc] at h ; exact h.of_inv.of_pow _
 #align irrational.of_zpow Irrational.of_zpow
 -/
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2018 Mario Carneiro. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro, Abhimanyu Pallavi Sudhir, Jean Lo, Calle Sönne, Yury Kudryashov
 -/
-import Mathbin.Data.Real.Sqrt
-import Mathbin.Tactic.IntervalCases
-import Mathbin.RingTheory.Algebraic
-import Mathbin.Data.Rat.Sqrt
-import Mathbin.RingTheory.Int.Basic
+import Data.Real.Sqrt
+import Tactic.IntervalCases
+import RingTheory.Algebraic
+import Data.Rat.Sqrt
+import RingTheory.Int.Basic
 
 #align_import data.real.irrational from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
 
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2018 Mario Carneiro. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro, Abhimanyu Pallavi Sudhir, Jean Lo, Calle Sönne, Yury Kudryashov
-
-! This file was ported from Lean 3 source module data.real.irrational
-! 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.Data.Real.Sqrt
 import Mathbin.Tactic.IntervalCases
@@ -14,6 +9,8 @@ import Mathbin.RingTheory.Algebraic
 import Mathbin.Data.Rat.Sqrt
 import Mathbin.RingTheory.Int.Basic
 
+#align_import data.real.irrational from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
+
 /-!
 # Irrational real numbers
 
Diff
@@ -678,7 +678,7 @@ theorem irrational_int_add_iff : Irrational (m + x) ↔ Irrational x :=
 #print irrational_nat_add_iff /-
 @[simp]
 theorem irrational_nat_add_iff : Irrational (n + x) ↔ Irrational x :=
-  ⟨of_nat_add n, fun h => h.natAdd n⟩
+  ⟨of_nat_add n, fun h => h.natAddEmb n⟩
 #align irrational_nat_add_iff irrational_nat_add_iff
 -/
 
@@ -699,7 +699,7 @@ theorem irrational_add_int_iff : Irrational (x + m) ↔ Irrational x :=
 #print irrational_add_nat_iff /-
 @[simp]
 theorem irrational_add_nat_iff : Irrational (x + n) ↔ Irrational x :=
-  ⟨of_add_nat n, fun h => h.addNat n⟩
+  ⟨of_add_nat n, fun h => h.addNatEmb n⟩
 #align irrational_add_nat_iff irrational_add_nat_iff
 -/
 
Diff
@@ -37,10 +37,12 @@ def Irrational (x : ℝ) :=
 #align irrational Irrational
 -/
 
+#print irrational_iff_ne_rational /-
 theorem irrational_iff_ne_rational (x : ℝ) : Irrational x ↔ ∀ a b : ℤ, x ≠ a / b := by
   simp only [Irrational, Rat.forall, cast_mk, not_exists, Set.mem_range, cast_coe_int, cast_div,
     eq_comm]
 #align irrational_iff_ne_rational irrational_iff_ne_rational
+-/
 
 #print Transcendental.irrational /-
 /-- A transcendental real number is irrational. -/
@@ -54,6 +56,7 @@ theorem Transcendental.irrational {r : ℝ} (tr : Transcendental ℚ r) : Irrati
 -/
 
 
+#print irrational_nrt_of_notint_nrt /-
 /-- If `x^n`, `n > 0`, is integer and is not the `n`-th power of an integer, then
 `x` is irrational. -/
 theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n = m)
@@ -72,7 +75,9 @@ theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n
   refine' hv ⟨N, _⟩
   rw [num_denom', Int.ofNat_one, mk_eq_div, Int.cast_one, div_one, cast_coe_int]
 #align irrational_nrt_of_notint_nrt irrational_nrt_of_notint_nrt
+-/
 
+#print irrational_nrt_of_n_not_dvd_multiplicity /-
 /-- If `x^n = m` is an integer and `n` does not divide the `multiplicity p m`, then `x`
 is irrational. -/
 theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (hm : m ≠ 0) (p : ℕ)
@@ -92,7 +97,9 @@ theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (
     Nat.mul_mod_right] at hv 
   exact hv rfl
 #align irrational_nrt_of_n_not_dvd_multiplicity irrational_nrt_of_n_not_dvd_multiplicity
+-/
 
+#print irrational_sqrt_of_multiplicity_odd /-
 theorem irrational_sqrt_of_multiplicity_odd (m : ℤ) (hm : 0 < m) (p : ℕ) [hp : Fact p.Prime]
     (Hpv :
       (multiplicity (p : ℤ) m).get (finite_int_iff.2 ⟨hp.1.ne_one, (ne_of_lt hm).symm⟩) % 2 = 1) :
@@ -100,17 +107,23 @@ theorem irrational_sqrt_of_multiplicity_odd (m : ℤ) (hm : 0 < m) (p : ℕ) [hp
   @irrational_nrt_of_n_not_dvd_multiplicity _ 2 _ (Ne.symm (ne_of_lt hm)) p hp
     (sq_sqrt (Int.cast_nonneg.2 <| le_of_lt hm)) (by rw [Hpv] <;> exact one_ne_zero)
 #align irrational_sqrt_of_multiplicity_odd irrational_sqrt_of_multiplicity_odd
+-/
 
+#print Nat.Prime.irrational_sqrt /-
 theorem Nat.Prime.irrational_sqrt {p : ℕ} (hp : Nat.Prime p) : Irrational (sqrt p) :=
   @irrational_sqrt_of_multiplicity_odd p (Int.coe_nat_pos.2 hp.Pos) p ⟨hp⟩ <| by
     simp [multiplicity_self (mt isUnit_iff_dvd_one.1 (mt Int.coe_nat_dvd.1 hp.not_dvd_one) : _)] <;>
       rfl
 #align nat.prime.irrational_sqrt Nat.Prime.irrational_sqrt
+-/
 
+#print irrational_sqrt_two /-
 /-- **Irrationality of the Square Root of 2** -/
 theorem irrational_sqrt_two : Irrational (sqrt 2) := by simpa using nat.prime_two.irrational_sqrt
 #align irrational_sqrt_two irrational_sqrt_two
+-/
 
+#print irrational_sqrt_rat_iff /-
 theorem irrational_sqrt_rat_iff (q : ℚ) :
     Irrational (sqrt q) ↔ Rat.sqrt q * Rat.sqrt q ≠ q ∧ 0 ≤ q :=
   if H1 : Rat.sqrt q * Rat.sqrt q = q then
@@ -140,6 +153,7 @@ theorem irrational_sqrt_rat_iff (q : ℚ) :
               exact (sqrt_eq_zero_of_nonpos (Rat.cast_nonpos.2 <| le_of_not_le H2)).symm⟩)
         fun h => H2 h.2
 #align irrational_sqrt_rat_iff irrational_sqrt_rat_iff
+-/
 
 instance (q : ℚ) : Decidable (Irrational (sqrt q)) :=
   decidable_of_iff' _ (irrational_sqrt_rat_iff q)
@@ -160,35 +174,51 @@ variable {x : ℝ}
 -/
 
 
+#print Irrational.ne_rat /-
 theorem ne_rat (h : Irrational x) (q : ℚ) : x ≠ q := fun hq => h ⟨q, hq.symm⟩
 #align irrational.ne_rat Irrational.ne_rat
+-/
 
+#print Irrational.ne_int /-
 theorem ne_int (h : Irrational x) (m : ℤ) : x ≠ m := by rw [← Rat.cast_coe_int]; exact h.ne_rat _
 #align irrational.ne_int Irrational.ne_int
+-/
 
+#print Irrational.ne_nat /-
 theorem ne_nat (h : Irrational x) (m : ℕ) : x ≠ m :=
   h.ne_int m
 #align irrational.ne_nat Irrational.ne_nat
+-/
 
+#print Irrational.ne_zero /-
 theorem ne_zero (h : Irrational x) : x ≠ 0 := by exact_mod_cast h.ne_nat 0
 #align irrational.ne_zero Irrational.ne_zero
+-/
 
+#print Irrational.ne_one /-
 theorem ne_one (h : Irrational x) : x ≠ 1 := by simpa only [Nat.cast_one] using h.ne_nat 1
 #align irrational.ne_one Irrational.ne_one
+-/
 
 end Irrational
 
+#print Rat.not_irrational /-
 @[simp]
 theorem Rat.not_irrational (q : ℚ) : ¬Irrational q := fun h => h ⟨q, rfl⟩
 #align rat.not_irrational Rat.not_irrational
+-/
 
+#print Int.not_irrational /-
 @[simp]
 theorem Int.not_irrational (m : ℤ) : ¬Irrational m := fun h => h.ne_int m rfl
 #align int.not_irrational Int.not_irrational
+-/
 
+#print Nat.not_irrational /-
 @[simp]
 theorem Nat.not_irrational (m : ℕ) : ¬Irrational m := fun h => h.ne_nat m rfl
 #align nat.not_irrational Nat.not_irrational
+-/
 
 namespace Irrational
 
@@ -199,6 +229,7 @@ variable (q : ℚ) {x y : ℝ}
 -/
 
 
+#print Irrational.add_cases /-
 /-- If `x + y` is irrational, then at least one of `x` and `y` is irrational. -/
 theorem add_cases : Irrational (x + y) → Irrational x ∨ Irrational y :=
   by
@@ -207,125 +238,179 @@ theorem add_cases : Irrational (x + y) → Irrational x ∨ Irrational y :=
   rintro ⟨⟨rx, rfl⟩, ⟨ry, rfl⟩⟩
   exact ⟨rx + ry, cast_add rx ry⟩
 #align irrational.add_cases Irrational.add_cases
+-/
 
+#print Irrational.of_rat_add /-
 theorem of_rat_add (h : Irrational (q + x)) : Irrational x :=
   h.addCases.resolve_left q.not_irrational
 #align irrational.of_rat_add Irrational.of_rat_add
+-/
 
+#print Irrational.rat_add /-
 theorem rat_add (h : Irrational x) : Irrational (q + x) :=
   of_rat_add (-q) <| by rwa [cast_neg, neg_add_cancel_left]
 #align irrational.rat_add Irrational.rat_add
+-/
 
+#print Irrational.of_add_rat /-
 theorem of_add_rat : Irrational (x + q) → Irrational x :=
   add_comm (↑q) x ▸ of_rat_add q
 #align irrational.of_add_rat Irrational.of_add_rat
+-/
 
+#print Irrational.add_rat /-
 theorem add_rat (h : Irrational x) : Irrational (x + q) :=
   add_comm (↑q) x ▸ h.rat_add q
 #align irrational.add_rat Irrational.add_rat
+-/
 
+#print Irrational.of_int_add /-
 theorem of_int_add (m : ℤ) (h : Irrational (m + x)) : Irrational x := by rw [← cast_coe_int] at h ;
   exact h.of_rat_add m
 #align irrational.of_int_add Irrational.of_int_add
+-/
 
+#print Irrational.of_add_int /-
 theorem of_add_int (m : ℤ) (h : Irrational (x + m)) : Irrational x :=
   of_int_add m <| add_comm x m ▸ h
 #align irrational.of_add_int Irrational.of_add_int
+-/
 
+#print Irrational.int_add /-
 theorem int_add (h : Irrational x) (m : ℤ) : Irrational (m + x) := by rw [← cast_coe_int];
   exact h.rat_add m
 #align irrational.int_add Irrational.int_add
+-/
 
+#print Irrational.add_int /-
 theorem add_int (h : Irrational x) (m : ℤ) : Irrational (x + m) :=
   add_comm (↑m) x ▸ h.int_add m
 #align irrational.add_int Irrational.add_int
+-/
 
+#print Irrational.of_nat_add /-
 theorem of_nat_add (m : ℕ) (h : Irrational (m + x)) : Irrational x :=
   h.of_int_add m
 #align irrational.of_nat_add Irrational.of_nat_add
+-/
 
+#print Irrational.of_add_nat /-
 theorem of_add_nat (m : ℕ) (h : Irrational (x + m)) : Irrational x :=
   h.of_add_int m
 #align irrational.of_add_nat Irrational.of_add_nat
+-/
 
+#print Irrational.nat_add /-
 theorem nat_add (h : Irrational x) (m : ℕ) : Irrational (m + x) :=
   h.int_add m
 #align irrational.nat_add Irrational.nat_add
+-/
 
+#print Irrational.add_nat /-
 theorem add_nat (h : Irrational x) (m : ℕ) : Irrational (x + m) :=
   h.add_int m
 #align irrational.add_nat Irrational.add_nat
+-/
 
 /-!
 #### Negation
 -/
 
 
+#print Irrational.of_neg /-
 theorem of_neg (h : Irrational (-x)) : Irrational x := fun ⟨q, hx⟩ => h ⟨-q, by rw [cast_neg, hx]⟩
 #align irrational.of_neg Irrational.of_neg
+-/
 
+#print Irrational.neg /-
 protected theorem neg (h : Irrational x) : Irrational (-x) :=
   of_neg <| by rwa [neg_neg]
 #align irrational.neg Irrational.neg
+-/
 
 /-!
 #### Subtraction of rational/integer/natural numbers
 -/
 
 
+#print Irrational.sub_rat /-
 theorem sub_rat (h : Irrational x) : Irrational (x - q) := by
   simpa only [sub_eq_add_neg, cast_neg] using h.add_rat (-q)
 #align irrational.sub_rat Irrational.sub_rat
+-/
 
+#print Irrational.rat_sub /-
 theorem rat_sub (h : Irrational x) : Irrational (q - x) := by
   simpa only [sub_eq_add_neg] using h.neg.rat_add q
 #align irrational.rat_sub Irrational.rat_sub
+-/
 
+#print Irrational.of_sub_rat /-
 theorem of_sub_rat (h : Irrational (x - q)) : Irrational x :=
   of_add_rat (-q) <| by simpa only [cast_neg, sub_eq_add_neg] using h
 #align irrational.of_sub_rat Irrational.of_sub_rat
+-/
 
+#print Irrational.of_rat_sub /-
 theorem of_rat_sub (h : Irrational (q - x)) : Irrational x :=
   of_neg (of_rat_add q (by simpa only [sub_eq_add_neg] using h))
 #align irrational.of_rat_sub Irrational.of_rat_sub
+-/
 
+#print Irrational.sub_int /-
 theorem sub_int (h : Irrational x) (m : ℤ) : Irrational (x - m) := by
   simpa only [Rat.cast_coe_int] using h.sub_rat m
 #align irrational.sub_int Irrational.sub_int
+-/
 
+#print Irrational.int_sub /-
 theorem int_sub (h : Irrational x) (m : ℤ) : Irrational (m - x) := by
   simpa only [Rat.cast_coe_int] using h.rat_sub m
 #align irrational.int_sub Irrational.int_sub
+-/
 
+#print Irrational.of_sub_int /-
 theorem of_sub_int (m : ℤ) (h : Irrational (x - m)) : Irrational x :=
   of_sub_rat m <| by rwa [Rat.cast_coe_int]
 #align irrational.of_sub_int Irrational.of_sub_int
+-/
 
+#print Irrational.of_int_sub /-
 theorem of_int_sub (m : ℤ) (h : Irrational (m - x)) : Irrational x :=
   of_rat_sub m <| by rwa [Rat.cast_coe_int]
 #align irrational.of_int_sub Irrational.of_int_sub
+-/
 
+#print Irrational.sub_nat /-
 theorem sub_nat (h : Irrational x) (m : ℕ) : Irrational (x - m) :=
   h.sub_int m
 #align irrational.sub_nat Irrational.sub_nat
+-/
 
+#print Irrational.nat_sub /-
 theorem nat_sub (h : Irrational x) (m : ℕ) : Irrational (m - x) :=
   h.int_sub m
 #align irrational.nat_sub Irrational.nat_sub
+-/
 
+#print Irrational.of_sub_nat /-
 theorem of_sub_nat (m : ℕ) (h : Irrational (x - m)) : Irrational x :=
   h.of_sub_int m
 #align irrational.of_sub_nat Irrational.of_sub_nat
+-/
 
+#print Irrational.of_nat_sub /-
 theorem of_nat_sub (m : ℕ) (h : Irrational (m - x)) : Irrational x :=
   h.of_int_sub m
 #align irrational.of_nat_sub Irrational.of_nat_sub
+-/
 
 /-!
 #### Multiplication by rational numbers
 -/
 
 
+#print Irrational.mul_cases /-
 theorem mul_cases : Irrational (x * y) → Irrational x ∨ Irrational y :=
   by
   delta Irrational
@@ -333,141 +418,202 @@ theorem mul_cases : Irrational (x * y) → Irrational x ∨ Irrational y :=
   rintro ⟨⟨rx, rfl⟩, ⟨ry, rfl⟩⟩
   exact ⟨rx * ry, cast_mul rx ry⟩
 #align irrational.mul_cases Irrational.mul_cases
+-/
 
+#print Irrational.of_mul_rat /-
 theorem of_mul_rat (h : Irrational (x * q)) : Irrational x :=
   h.mul_cases.resolve_right q.not_irrational
 #align irrational.of_mul_rat Irrational.of_mul_rat
+-/
 
+#print Irrational.mul_rat /-
 theorem mul_rat (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (x * q) :=
   of_mul_rat q⁻¹ <| by rwa [mul_assoc, ← cast_mul, mul_inv_cancel hq, cast_one, mul_one]
 #align irrational.mul_rat Irrational.mul_rat
+-/
 
+#print Irrational.of_rat_mul /-
 theorem of_rat_mul : Irrational (q * x) → Irrational x :=
   mul_comm x q ▸ of_mul_rat q
 #align irrational.of_rat_mul Irrational.of_rat_mul
+-/
 
+#print Irrational.rat_mul /-
 theorem rat_mul (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (q * x) :=
   mul_comm x q ▸ h.mul_rat hq
 #align irrational.rat_mul Irrational.rat_mul
+-/
 
+#print Irrational.of_mul_int /-
 theorem of_mul_int (m : ℤ) (h : Irrational (x * m)) : Irrational x :=
   of_mul_rat m <| by rwa [cast_coe_int]
 #align irrational.of_mul_int Irrational.of_mul_int
+-/
 
+#print Irrational.of_int_mul /-
 theorem of_int_mul (m : ℤ) (h : Irrational (m * x)) : Irrational x :=
   of_rat_mul m <| by rwa [cast_coe_int]
 #align irrational.of_int_mul Irrational.of_int_mul
+-/
 
+#print Irrational.mul_int /-
 theorem mul_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x * m) := by
   rw [← cast_coe_int]; refine' h.mul_rat _; rwa [Int.cast_ne_zero]
 #align irrational.mul_int Irrational.mul_int
+-/
 
+#print Irrational.int_mul /-
 theorem int_mul (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (m * x) :=
   mul_comm x m ▸ h.mul_int hm
 #align irrational.int_mul Irrational.int_mul
+-/
 
+#print Irrational.of_mul_nat /-
 theorem of_mul_nat (m : ℕ) (h : Irrational (x * m)) : Irrational x :=
   h.of_mul_int m
 #align irrational.of_mul_nat Irrational.of_mul_nat
+-/
 
+#print Irrational.of_nat_mul /-
 theorem of_nat_mul (m : ℕ) (h : Irrational (m * x)) : Irrational x :=
   h.of_int_mul m
 #align irrational.of_nat_mul Irrational.of_nat_mul
+-/
 
+#print Irrational.mul_nat /-
 theorem mul_nat (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (x * m) :=
   h.mul_int <| Int.coe_nat_ne_zero.2 hm
 #align irrational.mul_nat Irrational.mul_nat
+-/
 
+#print Irrational.nat_mul /-
 theorem nat_mul (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m * x) :=
   h.int_mul <| Int.coe_nat_ne_zero.2 hm
 #align irrational.nat_mul Irrational.nat_mul
+-/
 
 /-!
 #### Inverse
 -/
 
 
+#print Irrational.of_inv /-
 theorem of_inv (h : Irrational x⁻¹) : Irrational x := fun ⟨q, hq⟩ => h <| hq ▸ ⟨q⁻¹, q.cast_inv⟩
 #align irrational.of_inv Irrational.of_inv
+-/
 
+#print Irrational.inv /-
 protected theorem inv (h : Irrational x) : Irrational x⁻¹ :=
   of_inv <| by rwa [inv_inv]
 #align irrational.inv Irrational.inv
+-/
 
 /-!
 #### Division
 -/
 
 
+#print Irrational.div_cases /-
 theorem div_cases (h : Irrational (x / y)) : Irrational x ∨ Irrational y :=
   h.mul_cases.imp id of_inv
 #align irrational.div_cases Irrational.div_cases
+-/
 
+#print Irrational.of_rat_div /-
 theorem of_rat_div (h : Irrational (q / x)) : Irrational x :=
   (h.ofRat_mul q).of_inv
 #align irrational.of_rat_div Irrational.of_rat_div
+-/
 
+#print Irrational.of_div_rat /-
 theorem of_div_rat (h : Irrational (x / q)) : Irrational x :=
   h.div_cases.resolve_right q.not_irrational
 #align irrational.of_div_rat Irrational.of_div_rat
+-/
 
+#print Irrational.rat_div /-
 theorem rat_div (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (q / x) :=
   h.inv.rat_mul hq
 #align irrational.rat_div Irrational.rat_div
+-/
 
+#print Irrational.div_rat /-
 theorem div_rat (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (x / q) := by
   rw [div_eq_mul_inv, ← cast_inv]; exact h.mul_rat (inv_ne_zero hq)
 #align irrational.div_rat Irrational.div_rat
+-/
 
+#print Irrational.of_int_div /-
 theorem of_int_div (m : ℤ) (h : Irrational (m / x)) : Irrational x :=
   h.div_cases.resolve_left m.not_irrational
 #align irrational.of_int_div Irrational.of_int_div
+-/
 
+#print Irrational.of_div_int /-
 theorem of_div_int (m : ℤ) (h : Irrational (x / m)) : Irrational x :=
   h.div_cases.resolve_right m.not_irrational
 #align irrational.of_div_int Irrational.of_div_int
+-/
 
+#print Irrational.int_div /-
 theorem int_div (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (m / x) :=
   h.inv.int_mul hm
 #align irrational.int_div Irrational.int_div
+-/
 
+#print Irrational.div_int /-
 theorem div_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x / m) := by
   rw [← cast_coe_int]; refine' h.div_rat _; rwa [Int.cast_ne_zero]
 #align irrational.div_int Irrational.div_int
+-/
 
+#print Irrational.of_nat_div /-
 theorem of_nat_div (m : ℕ) (h : Irrational (m / x)) : Irrational x :=
   h.of_int_div m
 #align irrational.of_nat_div Irrational.of_nat_div
+-/
 
+#print Irrational.of_div_nat /-
 theorem of_div_nat (m : ℕ) (h : Irrational (x / m)) : Irrational x :=
   h.of_div_int m
 #align irrational.of_div_nat Irrational.of_div_nat
+-/
 
+#print Irrational.nat_div /-
 theorem nat_div (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m / x) :=
   h.inv.nat_mul hm
 #align irrational.nat_div Irrational.nat_div
+-/
 
+#print Irrational.div_nat /-
 theorem div_nat (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (x / m) :=
   h.div_int <| by rwa [Int.coe_nat_ne_zero]
 #align irrational.div_nat Irrational.div_nat
+-/
 
+#print Irrational.of_one_div /-
 theorem of_one_div (h : Irrational (1 / x)) : Irrational x :=
   of_rat_div 1 <| by rwa [cast_one]
 #align irrational.of_one_div Irrational.of_one_div
+-/
 
 /-!
 #### Natural and integerl power
 -/
 
 
+#print Irrational.of_mul_self /-
 theorem of_mul_self (h : Irrational (x * x)) : Irrational x :=
   h.mul_cases.elim id id
 #align irrational.of_mul_self Irrational.of_mul_self
+-/
 
+#print Irrational.of_pow /-
 theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
   | 0 => fun h => by rw [pow_zero] at h ; exact (h ⟨1, cast_one⟩).elim
   | n + 1 => fun h => by rw [pow_succ] at h ; exact h.mul_cases.elim id (of_pow n)
 #align irrational.of_pow Irrational.of_pow
+-/
 
 #print Irrational.of_zpow /-
 theorem of_zpow : ∀ m : ℤ, Irrational (x ^ m) → Irrational x
@@ -486,6 +632,7 @@ open scoped Polynomial
 
 variable (x : ℝ) (p : ℤ[X])
 
+#print one_lt_natDegree_of_irrational_root /-
 theorem one_lt_natDegree_of_irrational_root (hx : Irrational x) (p_nonzero : p ≠ 0)
     (x_is_root : aeval x p = 0) : 1 < p.natDegree :=
   by
@@ -499,6 +646,7 @@ theorem one_lt_natDegree_of_irrational_root (hx : Irrational x) (p_nonzero : p 
     refine' hx ⟨-b / a, _⟩
     assumption_mod_cast; assumption_mod_cast
 #align one_lt_nat_degree_of_irrational_root one_lt_natDegree_of_irrational_root
+-/
 
 end Polynomial
 
@@ -513,143 +661,197 @@ open Irrational
 -/
 
 
+#print irrational_rat_add_iff /-
 @[simp]
 theorem irrational_rat_add_iff : Irrational (q + x) ↔ Irrational x :=
   ⟨of_rat_add q, rat_add q⟩
 #align irrational_rat_add_iff irrational_rat_add_iff
+-/
 
+#print irrational_int_add_iff /-
 @[simp]
 theorem irrational_int_add_iff : Irrational (m + x) ↔ Irrational x :=
   ⟨of_int_add m, fun h => h.int_add m⟩
 #align irrational_int_add_iff irrational_int_add_iff
+-/
 
+#print irrational_nat_add_iff /-
 @[simp]
 theorem irrational_nat_add_iff : Irrational (n + x) ↔ Irrational x :=
   ⟨of_nat_add n, fun h => h.natAdd n⟩
 #align irrational_nat_add_iff irrational_nat_add_iff
+-/
 
+#print irrational_add_rat_iff /-
 @[simp]
 theorem irrational_add_rat_iff : Irrational (x + q) ↔ Irrational x :=
   ⟨of_add_rat q, add_rat q⟩
 #align irrational_add_rat_iff irrational_add_rat_iff
+-/
 
+#print irrational_add_int_iff /-
 @[simp]
 theorem irrational_add_int_iff : Irrational (x + m) ↔ Irrational x :=
   ⟨of_add_int m, fun h => h.add_int m⟩
 #align irrational_add_int_iff irrational_add_int_iff
+-/
 
+#print irrational_add_nat_iff /-
 @[simp]
 theorem irrational_add_nat_iff : Irrational (x + n) ↔ Irrational x :=
   ⟨of_add_nat n, fun h => h.addNat n⟩
 #align irrational_add_nat_iff irrational_add_nat_iff
+-/
 
+#print irrational_rat_sub_iff /-
 @[simp]
 theorem irrational_rat_sub_iff : Irrational (q - x) ↔ Irrational x :=
   ⟨of_rat_sub q, rat_sub q⟩
 #align irrational_rat_sub_iff irrational_rat_sub_iff
+-/
 
+#print irrational_int_sub_iff /-
 @[simp]
 theorem irrational_int_sub_iff : Irrational (m - x) ↔ Irrational x :=
   ⟨of_int_sub m, fun h => h.int_sub m⟩
 #align irrational_int_sub_iff irrational_int_sub_iff
+-/
 
+#print irrational_nat_sub_iff /-
 @[simp]
 theorem irrational_nat_sub_iff : Irrational (n - x) ↔ Irrational x :=
   ⟨of_nat_sub n, fun h => h.nat_sub n⟩
 #align irrational_nat_sub_iff irrational_nat_sub_iff
+-/
 
+#print irrational_sub_rat_iff /-
 @[simp]
 theorem irrational_sub_rat_iff : Irrational (x - q) ↔ Irrational x :=
   ⟨of_sub_rat q, sub_rat q⟩
 #align irrational_sub_rat_iff irrational_sub_rat_iff
+-/
 
+#print irrational_sub_int_iff /-
 @[simp]
 theorem irrational_sub_int_iff : Irrational (x - m) ↔ Irrational x :=
   ⟨of_sub_int m, fun h => h.sub_int m⟩
 #align irrational_sub_int_iff irrational_sub_int_iff
+-/
 
+#print irrational_sub_nat_iff /-
 @[simp]
 theorem irrational_sub_nat_iff : Irrational (x - n) ↔ Irrational x :=
   ⟨of_sub_nat n, fun h => h.subNat n⟩
 #align irrational_sub_nat_iff irrational_sub_nat_iff
+-/
 
+#print irrational_neg_iff /-
 @[simp]
 theorem irrational_neg_iff : Irrational (-x) ↔ Irrational x :=
   ⟨of_neg, Irrational.neg⟩
 #align irrational_neg_iff irrational_neg_iff
+-/
 
+#print irrational_inv_iff /-
 @[simp]
 theorem irrational_inv_iff : Irrational x⁻¹ ↔ Irrational x :=
   ⟨of_inv, Irrational.inv⟩
 #align irrational_inv_iff irrational_inv_iff
+-/
 
+#print irrational_rat_mul_iff /-
 @[simp]
 theorem irrational_rat_mul_iff : Irrational (q * x) ↔ q ≠ 0 ∧ Irrational x :=
   ⟨fun h => ⟨Rat.cast_ne_zero.1 <| left_ne_zero_of_mul h.NeZero, h.ofRat_mul q⟩, fun h =>
     h.2.rat_mul h.1⟩
 #align irrational_rat_mul_iff irrational_rat_mul_iff
+-/
 
+#print irrational_mul_rat_iff /-
 @[simp]
 theorem irrational_mul_rat_iff : Irrational (x * q) ↔ q ≠ 0 ∧ Irrational x := by
   rw [mul_comm, irrational_rat_mul_iff]
 #align irrational_mul_rat_iff irrational_mul_rat_iff
+-/
 
+#print irrational_int_mul_iff /-
 @[simp]
 theorem irrational_int_mul_iff : Irrational (m * x) ↔ m ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_int, irrational_rat_mul_iff, Int.cast_ne_zero]
 #align irrational_int_mul_iff irrational_int_mul_iff
+-/
 
+#print irrational_mul_int_iff /-
 @[simp]
 theorem irrational_mul_int_iff : Irrational (x * m) ↔ m ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_int, irrational_mul_rat_iff, Int.cast_ne_zero]
 #align irrational_mul_int_iff irrational_mul_int_iff
+-/
 
+#print irrational_nat_mul_iff /-
 @[simp]
 theorem irrational_nat_mul_iff : Irrational (n * x) ↔ n ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_nat, irrational_rat_mul_iff, Nat.cast_ne_zero]
 #align irrational_nat_mul_iff irrational_nat_mul_iff
+-/
 
+#print irrational_mul_nat_iff /-
 @[simp]
 theorem irrational_mul_nat_iff : Irrational (x * n) ↔ n ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_nat, irrational_mul_rat_iff, Nat.cast_ne_zero]
 #align irrational_mul_nat_iff irrational_mul_nat_iff
+-/
 
+#print irrational_rat_div_iff /-
 @[simp]
 theorem irrational_rat_div_iff : Irrational (q / x) ↔ q ≠ 0 ∧ Irrational x := by
   simp [div_eq_mul_inv]
 #align irrational_rat_div_iff irrational_rat_div_iff
+-/
 
+#print irrational_div_rat_iff /-
 @[simp]
 theorem irrational_div_rat_iff : Irrational (x / q) ↔ q ≠ 0 ∧ Irrational x := by
   rw [div_eq_mul_inv, ← cast_inv, irrational_mul_rat_iff, Ne.def, inv_eq_zero]
 #align irrational_div_rat_iff irrational_div_rat_iff
+-/
 
+#print irrational_int_div_iff /-
 @[simp]
 theorem irrational_int_div_iff : Irrational (m / x) ↔ m ≠ 0 ∧ Irrational x := by
   simp [div_eq_mul_inv]
 #align irrational_int_div_iff irrational_int_div_iff
+-/
 
+#print irrational_div_int_iff /-
 @[simp]
 theorem irrational_div_int_iff : Irrational (x / m) ↔ m ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_int, irrational_div_rat_iff, Int.cast_ne_zero]
 #align irrational_div_int_iff irrational_div_int_iff
+-/
 
+#print irrational_nat_div_iff /-
 @[simp]
 theorem irrational_nat_div_iff : Irrational (n / x) ↔ n ≠ 0 ∧ Irrational x := by
   simp [div_eq_mul_inv]
 #align irrational_nat_div_iff irrational_nat_div_iff
+-/
 
+#print irrational_div_nat_iff /-
 @[simp]
 theorem irrational_div_nat_iff : Irrational (x / n) ↔ n ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_nat, irrational_div_rat_iff, Nat.cast_ne_zero]
 #align irrational_div_nat_iff irrational_div_nat_iff
+-/
 
+#print exists_irrational_btwn /-
 /-- There is an irrational number `r` between any two reals `x < r < y`. -/
 theorem exists_irrational_btwn {x y : ℝ} (h : x < y) : ∃ r, Irrational r ∧ x < r ∧ r < y :=
   let ⟨q, ⟨hq1, hq2⟩⟩ := exists_rat_btwn ((sub_lt_sub_iff_right (Real.sqrt 2)).mpr h)
   ⟨q + Real.sqrt 2, irrational_sqrt_two.rat_add _, sub_lt_iff_lt_add.mp hq1,
     lt_sub_iff_add_lt.mp hq2⟩
 #align exists_irrational_btwn exists_irrational_btwn
+-/
 
 end
 
Diff
@@ -60,14 +60,14 @@ theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n
     (hv : ¬∃ y : ℤ, x = y) (hnpos : 0 < n) : Irrational x :=
   by
   rintro ⟨⟨N, D, P, C⟩, rfl⟩
-  rw [← cast_pow] at hxr
+  rw [← cast_pow] at hxr 
   have c1 : ((D : ℤ) : ℝ) ≠ 0 := by rw [Int.cast_ne_zero, Int.coe_nat_ne_zero]; exact ne_of_gt P
   have c2 : ((D : ℤ) : ℝ) ^ n ≠ 0 := pow_ne_zero _ c1
   rw [num_denom', cast_pow, cast_mk, div_pow, div_eq_iff_mul_eq c2, ← Int.cast_pow, ← Int.cast_pow,
-    ← Int.cast_mul, Int.cast_inj] at hxr
+    ← Int.cast_mul, Int.cast_inj] at hxr 
   have hdivn : ↑D ^ n ∣ N ^ n := Dvd.intro_left m hxr
   rw [← Int.dvd_natAbs, ← Int.coe_nat_pow, Int.coe_nat_dvd, Int.natAbs_pow,
-    Nat.pow_dvd_pow_iff hnpos] at hdivn
+    Nat.pow_dvd_pow_iff hnpos] at hdivn 
   obtain rfl : D = 1 := by rw [← Nat.gcd_eq_right hdivn, C.gcd_eq_one]
   refine' hv ⟨N, _⟩
   rw [num_denom', Int.ofNat_one, mk_eq_div, Int.cast_one, div_one, cast_coe_int]
@@ -80,16 +80,16 @@ theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (
     (hv : (multiplicity (p : ℤ) m).get (finite_int_iff.2 ⟨hp.1.ne_one, hm⟩) % n ≠ 0) :
     Irrational x := by
   rcases Nat.eq_zero_or_pos n with (rfl | hnpos)
-  · rw [eq_comm, pow_zero, ← Int.cast_one, Int.cast_inj] at hxr
+  · rw [eq_comm, pow_zero, ← Int.cast_one, Int.cast_inj] at hxr 
     simpa [hxr,
       multiplicity.one_right (mt isUnit_iff_dvd_one.1 (mt Int.coe_nat_dvd.1 hp.1.not_dvd_one)),
       Nat.zero_mod] using hv
   refine' irrational_nrt_of_notint_nrt _ _ hxr _ hnpos
   rintro ⟨y, rfl⟩
-  rw [← Int.cast_pow, Int.cast_inj] at hxr; subst m
-  have : y ≠ 0 := by rintro rfl; rw [zero_pow hnpos] at hm; exact hm rfl
+  rw [← Int.cast_pow, Int.cast_inj] at hxr ; subst m
+  have : y ≠ 0 := by rintro rfl; rw [zero_pow hnpos] at hm ; exact hm rfl
   erw [multiplicity.pow' (Nat.prime_iff_prime_int.1 hp.1) (finite_int_iff.2 ⟨hp.1.ne_one, this⟩),
-    Nat.mul_mod_right] at hv
+    Nat.mul_mod_right] at hv 
   exact hv rfl
 #align irrational_nrt_of_n_not_dvd_multiplicity irrational_nrt_of_n_not_dvd_multiplicity
 
@@ -128,7 +128,7 @@ theorem irrational_sqrt_rat_iff (q : ℚ) :
             (exists_mul_self _).1
               ⟨r, by
                 rwa [eq_comm, sqrt_eq_iff_mul_self_eq (cast_nonneg.2 H2), ← cast_mul,
-                      Rat.cast_inj] at hr <;>
+                      Rat.cast_inj] at hr  <;>
                     rw [← hr] <;>
                   exact Real.sqrt_nonneg _⟩)
         ⟨H1, H2⟩
@@ -224,7 +224,7 @@ theorem add_rat (h : Irrational x) : Irrational (x + q) :=
   add_comm (↑q) x ▸ h.rat_add q
 #align irrational.add_rat Irrational.add_rat
 
-theorem of_int_add (m : ℤ) (h : Irrational (m + x)) : Irrational x := by rw [← cast_coe_int] at h;
+theorem of_int_add (m : ℤ) (h : Irrational (m + x)) : Irrational x := by rw [← cast_coe_int] at h ;
   exact h.of_rat_add m
 #align irrational.of_int_add Irrational.of_int_add
 
@@ -465,14 +465,14 @@ theorem of_mul_self (h : Irrational (x * x)) : Irrational x :=
 #align irrational.of_mul_self Irrational.of_mul_self
 
 theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
-  | 0 => fun h => by rw [pow_zero] at h; exact (h ⟨1, cast_one⟩).elim
-  | n + 1 => fun h => by rw [pow_succ] at h; exact h.mul_cases.elim id (of_pow n)
+  | 0 => fun h => by rw [pow_zero] at h ; exact (h ⟨1, cast_one⟩).elim
+  | n + 1 => fun h => by rw [pow_succ] at h ; exact h.mul_cases.elim id (of_pow n)
 #align irrational.of_pow Irrational.of_pow
 
 #print Irrational.of_zpow /-
 theorem of_zpow : ∀ m : ℤ, Irrational (x ^ m) → Irrational x
-  | (n : ℕ) => fun h => by rw [zpow_ofNat] at h; exact h.of_pow _
-  | -[n+1] => fun h => by rw [zpow_negSucc] at h; exact h.of_inv.of_pow _
+  | (n : ℕ) => fun h => by rw [zpow_ofNat] at h ; exact h.of_pow _
+  | -[n+1] => fun h => by rw [zpow_negSucc] at h ; exact h.of_inv.of_pow _
 #align irrational.of_zpow Irrational.of_zpow
 -/
 
@@ -495,7 +495,7 @@ theorem one_lt_natDegree_of_irrational_root (hx : Irrational x) (p_nonzero : p 
   rcases em (a = 0) with (rfl | ha)
   · obtain rfl : b = 0 := by simpa
     simpa using p_nonzero
-  · rw [mul_comm, ← eq_div_iff_mul_eq, eq_comm] at this
+  · rw [mul_comm, ← eq_div_iff_mul_eq, eq_comm] at this 
     refine' hx ⟨-b / a, _⟩
     assumption_mod_cast; assumption_mod_cast
 #align one_lt_nat_degree_of_irrational_root one_lt_natDegree_of_irrational_root
Diff
@@ -482,7 +482,7 @@ section Polynomial
 
 open Polynomial
 
-open Polynomial
+open scoped Polynomial
 
 variable (x : ℝ) (p : ℤ[X])
 
Diff
@@ -37,12 +37,6 @@ def Irrational (x : ℝ) :=
 #align irrational Irrational
 -/
 
-/- warning: irrational_iff_ne_rational -> irrational_iff_ne_rational is a dubious translation:
-lean 3 declaration is
-  forall (x : Real), Iff (Irrational x) (forall (a : Int) (b : Int), Ne.{1} Real x (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) b)))
-but is expected to have type
-  forall (x : Real), Iff (Irrational x) (forall (a : Int) (b : Int), Ne.{1} Real x (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast a) (Int.cast.{0} Real Real.intCast b)))
-Case conversion may be inaccurate. Consider using '#align irrational_iff_ne_rational irrational_iff_ne_rationalₓ'. -/
 theorem irrational_iff_ne_rational (x : ℝ) : Irrational x ↔ ∀ a b : ℤ, x ≠ a / b := by
   simp only [Irrational, Rat.forall, cast_mk, not_exists, Set.mem_range, cast_coe_int, cast_div,
     eq_comm]
@@ -60,12 +54,6 @@ theorem Transcendental.irrational {r : ℝ} (tr : Transcendental ℚ r) : Irrati
 -/
 
 
-/- warning: irrational_nrt_of_notint_nrt -> irrational_nrt_of_notint_nrt is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (n : Nat) (m : Int), (Eq.{1} Real (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) x n) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m)) -> (Not (Exists.{1} Int (fun (y : Int) => Eq.{1} Real x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) y)))) -> (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (n : Nat) (m : Int), (Eq.{1} Real (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) x n) (Int.cast.{0} Real Real.intCast m)) -> (Not (Exists.{1} Int (fun (y : Int) => Eq.{1} Real x (Int.cast.{0} Real Real.intCast y)))) -> (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_nrt_of_notint_nrt irrational_nrt_of_notint_nrtₓ'. -/
 /-- If `x^n`, `n > 0`, is integer and is not the `n`-th power of an integer, then
 `x` is irrational. -/
 theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n = m)
@@ -85,12 +73,6 @@ theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n
   rw [num_denom', Int.ofNat_one, mk_eq_div, Int.cast_one, div_one, cast_coe_int]
 #align irrational_nrt_of_notint_nrt irrational_nrt_of_notint_nrt
 
-/- warning: irrational_nrt_of_n_not_dvd_multiplicity -> irrational_nrt_of_n_not_dvd_multiplicity is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (n : Nat) {m : Int} (hm : Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (p : Nat) [hp : Fact (Nat.Prime p)], (Eq.{1} Real (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) x n) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m)) -> (Ne.{1} Nat (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.hasMod) (Part.get.{0} Nat (multiplicity.{0} Int Int.monoid (fun (a : Int) (b : Int) => Int.decidableDvd a b) ((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) m) (Iff.mpr (multiplicity.Finite.{0} Int Int.monoid ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) p) m) (And (Ne.{1} Nat (Int.natAbs ((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)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))))) (multiplicity.finite_int_iff ((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) m) (And.intro (Ne.{1} Nat (Int.natAbs ((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)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Nat.Prime.ne_one p (Fact.out (Nat.Prime p) hp)) hm))) n) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (n : Nat) {m : Int} (hm : Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (p : Nat) [hp : Fact (Nat.Prime p)], (Eq.{1} Real (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) x n) (Int.cast.{0} Real Real.intCast m)) -> (Ne.{1} Nat (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.instModNat) (Part.get.{0} Nat (multiplicity.{0} Int Int.instMonoidInt (fun (a : Int) (b : Int) => Int.decidableDvd a b) (Nat.cast.{0} Int instNatCastInt p) m) (Iff.mpr (multiplicity.Finite.{0} Int Int.instMonoidInt (Nat.cast.{0} Int instNatCastInt p) m) (And (Ne.{1} Nat (Int.natAbs (Nat.cast.{0} Int instNatCastInt p)) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))) (multiplicity.finite_int_iff (Nat.cast.{0} Int instNatCastInt p) m) (And.intro (Ne.{1} Nat (Int.natAbs (Nat.cast.{0} Int instNatCastInt p)) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Nat.Prime.ne_one p (Fact.out (Nat.Prime p) hp)) hm))) n) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_nrt_of_n_not_dvd_multiplicity irrational_nrt_of_n_not_dvd_multiplicityₓ'. -/
 /-- If `x^n = m` is an integer and `n` does not divide the `multiplicity p m`, then `x`
 is irrational. -/
 theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (hm : m ≠ 0) (p : ℕ)
@@ -111,12 +93,6 @@ theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (
   exact hv rfl
 #align irrational_nrt_of_n_not_dvd_multiplicity irrational_nrt_of_n_not_dvd_multiplicity
 
-/- warning: irrational_sqrt_of_multiplicity_odd -> irrational_sqrt_of_multiplicity_odd is a dubious translation:
-lean 3 declaration is
-  forall (m : Int) (hm : LT.lt.{0} Int Int.hasLt (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) m) (p : Nat) [hp : Fact (Nat.Prime p)], (Eq.{1} Nat (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.hasMod) (Part.get.{0} Nat (multiplicity.{0} Int Int.monoid (fun (a : Int) (b : Int) => Int.decidableDvd a b) ((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) m) (Iff.mpr (multiplicity.Finite.{0} Int Int.monoid ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) p) m) (And (Ne.{1} Nat (Int.natAbs ((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)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))))) (multiplicity.finite_int_iff ((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) m) (And.intro (Ne.{1} Nat (Int.natAbs ((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)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Nat.Prime.ne_one p (Fact.out (Nat.Prime p) hp)) (Ne.symm.{1} Int (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) m (ne_of_lt.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) m hm))))) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) -> (Irrational (Real.sqrt ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m)))
-but is expected to have type
-  forall (m : Int) (hm : LT.lt.{0} Int Int.instLTInt (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) m) (p : Nat) [hp : Fact (Nat.Prime p)], (Eq.{1} Nat (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.instModNat) (Part.get.{0} Nat (multiplicity.{0} Int Int.instMonoidInt (fun (a : Int) (b : Int) => Int.decidableDvd a b) (Nat.cast.{0} Int instNatCastInt p) m) (Iff.mpr (multiplicity.Finite.{0} Int Int.instMonoidInt (Nat.cast.{0} Int instNatCastInt p) m) (And (Ne.{1} Nat (Int.natAbs (Nat.cast.{0} Int instNatCastInt p)) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))) (multiplicity.finite_int_iff (Nat.cast.{0} Int instNatCastInt p) m) (And.intro (Ne.{1} Nat (Int.natAbs (Nat.cast.{0} Int instNatCastInt p)) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Nat.Prime.ne_one p (Fact.out (Nat.Prime p) hp)) (Ne.symm.{1} Int (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) m (ne_of_lt.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) m hm))))) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) -> (Irrational (Real.sqrt (Int.cast.{0} Real Real.intCast m)))
-Case conversion may be inaccurate. Consider using '#align irrational_sqrt_of_multiplicity_odd irrational_sqrt_of_multiplicity_oddₓ'. -/
 theorem irrational_sqrt_of_multiplicity_odd (m : ℤ) (hm : 0 < m) (p : ℕ) [hp : Fact p.Prime]
     (Hpv :
       (multiplicity (p : ℤ) m).get (finite_int_iff.2 ⟨hp.1.ne_one, (ne_of_lt hm).symm⟩) % 2 = 1) :
@@ -125,34 +101,16 @@ theorem irrational_sqrt_of_multiplicity_odd (m : ℤ) (hm : 0 < m) (p : ℕ) [hp
     (sq_sqrt (Int.cast_nonneg.2 <| le_of_lt hm)) (by rw [Hpv] <;> exact one_ne_zero)
 #align irrational_sqrt_of_multiplicity_odd irrational_sqrt_of_multiplicity_odd
 
-/- warning: nat.prime.irrational_sqrt -> Nat.Prime.irrational_sqrt is a dubious translation:
-lean 3 declaration is
-  forall {p : Nat}, (Nat.Prime p) -> (Irrational (Real.sqrt ((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}, (Nat.Prime p) -> (Irrational (Real.sqrt (Nat.cast.{0} Real Real.natCast p)))
-Case conversion may be inaccurate. Consider using '#align nat.prime.irrational_sqrt Nat.Prime.irrational_sqrtₓ'. -/
 theorem Nat.Prime.irrational_sqrt {p : ℕ} (hp : Nat.Prime p) : Irrational (sqrt p) :=
   @irrational_sqrt_of_multiplicity_odd p (Int.coe_nat_pos.2 hp.Pos) p ⟨hp⟩ <| by
     simp [multiplicity_self (mt isUnit_iff_dvd_one.1 (mt Int.coe_nat_dvd.1 hp.not_dvd_one) : _)] <;>
       rfl
 #align nat.prime.irrational_sqrt Nat.Prime.irrational_sqrt
 
-/- warning: irrational_sqrt_two -> irrational_sqrt_two is a dubious translation:
-lean 3 declaration is
-  Irrational (Real.sqrt (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))
-but is expected to have type
-  Irrational (Real.sqrt (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))
-Case conversion may be inaccurate. Consider using '#align irrational_sqrt_two irrational_sqrt_twoₓ'. -/
 /-- **Irrationality of the Square Root of 2** -/
 theorem irrational_sqrt_two : Irrational (sqrt 2) := by simpa using nat.prime_two.irrational_sqrt
 #align irrational_sqrt_two irrational_sqrt_two
 
-/- warning: irrational_sqrt_rat_iff -> irrational_sqrt_rat_iff is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat), Iff (Irrational (Real.sqrt ((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))) (And (Ne.{1} Rat (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.hasMul) (Rat.sqrt q) (Rat.sqrt q)) q) (LE.le.{0} Rat Rat.hasLe (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))) q))
-but is expected to have type
-  forall (q : Rat), Iff (Irrational (Real.sqrt (Rat.cast.{0} Real Real.ratCast q))) (And (Ne.{1} Rat (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.instMulRat) (Rat.sqrt q) (Rat.sqrt q)) q) (LE.le.{0} Rat Rat.instLERat (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)) q))
-Case conversion may be inaccurate. Consider using '#align irrational_sqrt_rat_iff irrational_sqrt_rat_iffₓ'. -/
 theorem irrational_sqrt_rat_iff (q : ℚ) :
     Irrational (sqrt q) ↔ Rat.sqrt q * Rat.sqrt q ≠ q ∧ 0 ≤ q :=
   if H1 : Rat.sqrt q * Rat.sqrt q = q then
@@ -202,80 +160,32 @@ variable {x : ℝ}
 -/
 
 
-/- warning: irrational.ne_rat -> Irrational.ne_rat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall (q : Rat), Ne.{1} Real x ((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 {x : Real}, (Irrational x) -> (forall (q : Rat), Ne.{1} Real x (Rat.cast.{0} Real Real.ratCast q))
-Case conversion may be inaccurate. Consider using '#align irrational.ne_rat Irrational.ne_ratₓ'. -/
 theorem ne_rat (h : Irrational x) (q : ℚ) : x ≠ q := fun hq => h ⟨q, hq.symm⟩
 #align irrational.ne_rat Irrational.ne_rat
 
-/- warning: irrational.ne_int -> Irrational.ne_int is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall (m : Int), Ne.{1} Real x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall (m : Int), Ne.{1} Real x (Int.cast.{0} Real Real.intCast m))
-Case conversion may be inaccurate. Consider using '#align irrational.ne_int Irrational.ne_intₓ'. -/
 theorem ne_int (h : Irrational x) (m : ℤ) : x ≠ m := by rw [← Rat.cast_coe_int]; exact h.ne_rat _
 #align irrational.ne_int Irrational.ne_int
 
-/- warning: irrational.ne_nat -> Irrational.ne_nat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Ne.{1} Real x ((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))) m))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Ne.{1} Real x (Nat.cast.{0} Real Real.natCast m))
-Case conversion may be inaccurate. Consider using '#align irrational.ne_nat Irrational.ne_natₓ'. -/
 theorem ne_nat (h : Irrational x) (m : ℕ) : x ≠ m :=
   h.ne_int m
 #align irrational.ne_nat Irrational.ne_nat
 
-/- warning: irrational.ne_zero -> Irrational.ne_zero is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (Ne.{1} Real x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (Ne.{1} Real x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
-Case conversion may be inaccurate. Consider using '#align irrational.ne_zero Irrational.ne_zeroₓ'. -/
 theorem ne_zero (h : Irrational x) : x ≠ 0 := by exact_mod_cast h.ne_nat 0
 #align irrational.ne_zero Irrational.ne_zero
 
-/- warning: irrational.ne_one -> Irrational.ne_one is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (Ne.{1} Real x (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (Ne.{1} Real x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align irrational.ne_one Irrational.ne_oneₓ'. -/
 theorem ne_one (h : Irrational x) : x ≠ 1 := by simpa only [Nat.cast_one] using h.ne_nat 1
 #align irrational.ne_one Irrational.ne_one
 
 end Irrational
 
-/- warning: rat.not_irrational -> Rat.not_irrational is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat), Not (Irrational ((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 (q : Rat), Not (Irrational (Rat.cast.{0} Real Real.ratCast q))
-Case conversion may be inaccurate. Consider using '#align rat.not_irrational Rat.not_irrationalₓ'. -/
 @[simp]
 theorem Rat.not_irrational (q : ℚ) : ¬Irrational q := fun h => h ⟨q, rfl⟩
 #align rat.not_irrational Rat.not_irrational
 
-/- warning: int.not_irrational -> Int.not_irrational is a dubious translation:
-lean 3 declaration is
-  forall (m : Int), Not (Irrational ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))
-but is expected to have type
-  forall (m : Int), Not (Irrational (Int.cast.{0} Real Real.intCast m))
-Case conversion may be inaccurate. Consider using '#align int.not_irrational Int.not_irrationalₓ'. -/
 @[simp]
 theorem Int.not_irrational (m : ℤ) : ¬Irrational m := fun h => h.ne_int m rfl
 #align int.not_irrational Int.not_irrational
 
-/- warning: nat.not_irrational -> Nat.not_irrational is a dubious translation:
-lean 3 declaration is
-  forall (m : Nat), Not (Irrational ((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))) m))
-but is expected to have type
-  forall (m : Nat), Not (Irrational (Nat.cast.{0} Real Real.natCast m))
-Case conversion may be inaccurate. Consider using '#align nat.not_irrational Nat.not_irrationalₓ'. -/
 @[simp]
 theorem Nat.not_irrational (m : ℕ) : ¬Irrational m := fun h => h.ne_nat m rfl
 #align nat.not_irrational Nat.not_irrational
@@ -289,12 +199,6 @@ variable (q : ℚ) {x y : ℝ}
 -/
 
 
-/- warning: irrational.add_cases -> Irrational.add_cases is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} {y : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x y)) -> (Or (Irrational x) (Irrational y))
-but is expected to have type
-  forall {x : Real} {y : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x y)) -> (Or (Irrational x) (Irrational y))
-Case conversion may be inaccurate. Consider using '#align irrational.add_cases Irrational.add_casesₓ'. -/
 /-- If `x + y` is irrational, then at least one of `x` and `y` is irrational. -/
 theorem add_cases : Irrational (x + y) → Irrational x ∨ Irrational y :=
   by
@@ -304,122 +208,50 @@ theorem add_cases : Irrational (x + y) → Irrational x ∨ Irrational y :=
   exact ⟨rx + ry, cast_add rx ry⟩
 #align irrational.add_cases Irrational.add_cases
 
-/- warning: irrational.of_rat_add -> Irrational.of_rat_add is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) x)) -> (Irrational x)
-but is expected to have type
-  forall (q : Rat) {x : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Rat.cast.{0} Real Real.ratCast q) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_rat_add Irrational.of_rat_addₓ'. -/
 theorem of_rat_add (h : Irrational (q + x)) : Irrational x :=
   h.addCases.resolve_left q.not_irrational
 #align irrational.of_rat_add Irrational.of_rat_add
 
-/- warning: irrational.rat_add -> Irrational.rat_add is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) x))
-but is expected to have type
-  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Rat.cast.{0} Real Real.ratCast q) x))
-Case conversion may be inaccurate. Consider using '#align irrational.rat_add Irrational.rat_addₓ'. -/
 theorem rat_add (h : Irrational x) : Irrational (q + x) :=
   of_rat_add (-q) <| by rwa [cast_neg, neg_add_cancel_left]
 #align irrational.rat_add Irrational.rat_add
 
-/- warning: irrational.of_add_rat -> Irrational.of_add_rat is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) -> (Irrational x)
-but is expected to have type
-  forall (q : Rat) {x : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Rat.cast.{0} Real Real.ratCast q))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_add_rat Irrational.of_add_ratₓ'. -/
 theorem of_add_rat : Irrational (x + q) → Irrational x :=
   add_comm (↑q) x ▸ of_rat_add q
 #align irrational.of_add_rat Irrational.of_add_rat
 
-/- warning: irrational.add_rat -> Irrational.add_rat is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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 (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Rat.cast.{0} Real Real.ratCast q)))
-Case conversion may be inaccurate. Consider using '#align irrational.add_rat Irrational.add_ratₓ'. -/
 theorem add_rat (h : Irrational x) : Irrational (x + q) :=
   add_comm (↑q) x ▸ h.rat_add q
 #align irrational.add_rat Irrational.add_rat
 
-/- warning: irrational.of_int_add -> Irrational.of_int_add is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Int), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Int), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_int_add Irrational.of_int_addₓ'. -/
 theorem of_int_add (m : ℤ) (h : Irrational (m + x)) : Irrational x := by rw [← cast_coe_int] at h;
   exact h.of_rat_add m
 #align irrational.of_int_add Irrational.of_int_add
 
-/- warning: irrational.of_add_int -> Irrational.of_add_int is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Int), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Int), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_add_int Irrational.of_add_intₓ'. -/
 theorem of_add_int (m : ℤ) (h : Irrational (x + m)) : Irrational x :=
   of_int_add m <| add_comm x m ▸ h
 #align irrational.of_add_int Irrational.of_add_int
 
-/- warning: irrational.int_add -> Irrational.int_add is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x))
-Case conversion may be inaccurate. Consider using '#align irrational.int_add Irrational.int_addₓ'. -/
 theorem int_add (h : Irrational x) (m : ℤ) : Irrational (m + x) := by rw [← cast_coe_int];
   exact h.rat_add m
 #align irrational.int_add Irrational.int_add
 
-/- warning: irrational.add_int -> Irrational.add_int is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m)))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m)))
-Case conversion may be inaccurate. Consider using '#align irrational.add_int Irrational.add_intₓ'. -/
 theorem add_int (h : Irrational x) (m : ℤ) : Irrational (x + m) :=
   add_comm (↑m) x ▸ h.int_add m
 #align irrational.add_int Irrational.add_int
 
-/- warning: irrational.of_nat_add -> Irrational.of_nat_add is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Nat), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) m) x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Nat), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast m) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_nat_add Irrational.of_nat_addₓ'. -/
 theorem of_nat_add (m : ℕ) (h : Irrational (m + x)) : Irrational x :=
   h.of_int_add m
 #align irrational.of_nat_add Irrational.of_nat_add
 
-/- warning: irrational.of_add_nat -> Irrational.of_add_nat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Nat), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) m))) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Nat), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast m))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_add_nat Irrational.of_add_natₓ'. -/
 theorem of_add_nat (m : ℕ) (h : Irrational (x + m)) : Irrational x :=
   h.of_add_int m
 #align irrational.of_add_nat Irrational.of_add_nat
 
-/- warning: irrational.nat_add -> Irrational.nat_add is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) m) x))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast m) x))
-Case conversion may be inaccurate. Consider using '#align irrational.nat_add Irrational.nat_addₓ'. -/
 theorem nat_add (h : Irrational x) (m : ℕ) : Irrational (m + x) :=
   h.int_add m
 #align irrational.nat_add Irrational.nat_add
 
-/- warning: irrational.add_nat -> Irrational.add_nat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) m)))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast m)))
-Case conversion may be inaccurate. Consider using '#align irrational.add_nat Irrational.add_natₓ'. -/
 theorem add_nat (h : Irrational x) (m : ℕ) : Irrational (x + m) :=
   h.add_int m
 #align irrational.add_nat Irrational.add_nat
@@ -429,21 +261,9 @@ theorem add_nat (h : Irrational x) (m : ℕ) : Irrational (x + m) :=
 -/
 
 
-/- warning: irrational.of_neg -> Irrational.of_neg is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational (Neg.neg.{0} Real Real.hasNeg x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real}, (Irrational (Neg.neg.{0} Real Real.instNegReal x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_neg Irrational.of_negₓ'. -/
 theorem of_neg (h : Irrational (-x)) : Irrational x := fun ⟨q, hx⟩ => h ⟨-q, by rw [cast_neg, hx]⟩
 #align irrational.of_neg Irrational.of_neg
 
-/- warning: irrational.neg -> Irrational.neg is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (Irrational (Neg.neg.{0} Real Real.hasNeg x))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (Irrational (Neg.neg.{0} Real Real.instNegReal x))
-Case conversion may be inaccurate. Consider using '#align irrational.neg Irrational.negₓ'. -/
 protected theorem neg (h : Irrational x) : Irrational (-x) :=
   of_neg <| by rwa [neg_neg]
 #align irrational.neg Irrational.neg
@@ -453,122 +273,50 @@ protected theorem neg (h : Irrational x) : Irrational (-x) :=
 -/
 
 
-/- warning: irrational.sub_rat -> Irrational.sub_rat is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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 (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Rat.cast.{0} Real Real.ratCast q)))
-Case conversion may be inaccurate. Consider using '#align irrational.sub_rat Irrational.sub_ratₓ'. -/
 theorem sub_rat (h : Irrational x) : Irrational (x - q) := by
   simpa only [sub_eq_add_neg, cast_neg] using h.add_rat (-q)
 #align irrational.sub_rat Irrational.sub_rat
 
-/- warning: irrational.rat_sub -> Irrational.rat_sub is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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) x))
-but is expected to have type
-  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Rat.cast.{0} Real Real.ratCast q) x))
-Case conversion may be inaccurate. Consider using '#align irrational.rat_sub Irrational.rat_subₓ'. -/
 theorem rat_sub (h : Irrational x) : Irrational (q - x) := by
   simpa only [sub_eq_add_neg] using h.neg.rat_add q
 #align irrational.rat_sub Irrational.rat_sub
 
-/- warning: irrational.of_sub_rat -> Irrational.of_sub_rat is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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))) -> (Irrational x)
-but is expected to have type
-  forall (q : Rat) {x : Real}, (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Rat.cast.{0} Real Real.ratCast q))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_sub_rat Irrational.of_sub_ratₓ'. -/
 theorem of_sub_rat (h : Irrational (x - q)) : Irrational x :=
   of_add_rat (-q) <| by simpa only [cast_neg, sub_eq_add_neg] using h
 #align irrational.of_sub_rat Irrational.of_sub_rat
 
-/- warning: irrational.of_rat_sub -> Irrational.of_rat_sub is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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) x)) -> (Irrational x)
-but is expected to have type
-  forall (q : Rat) {x : Real}, (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Rat.cast.{0} Real Real.ratCast q) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_rat_sub Irrational.of_rat_subₓ'. -/
 theorem of_rat_sub (h : Irrational (q - x)) : Irrational x :=
   of_neg (of_rat_add q (by simpa only [sub_eq_add_neg] using h))
 #align irrational.of_rat_sub Irrational.of_rat_sub
 
-/- warning: irrational.sub_int -> Irrational.sub_int is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m)))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast m)))
-Case conversion may be inaccurate. Consider using '#align irrational.sub_int Irrational.sub_intₓ'. -/
 theorem sub_int (h : Irrational x) (m : ℤ) : Irrational (x - m) := by
   simpa only [Rat.cast_coe_int] using h.sub_rat m
 #align irrational.sub_int Irrational.sub_int
 
-/- warning: irrational.int_sub -> Irrational.int_sub is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Int.cast.{0} Real Real.intCast m) x))
-Case conversion may be inaccurate. Consider using '#align irrational.int_sub Irrational.int_subₓ'. -/
 theorem int_sub (h : Irrational x) (m : ℤ) : Irrational (m - x) := by
   simpa only [Rat.cast_coe_int] using h.rat_sub m
 #align irrational.int_sub Irrational.int_sub
 
-/- warning: irrational.of_sub_int -> Irrational.of_sub_int is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Int), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Int), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast m))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_sub_int Irrational.of_sub_intₓ'. -/
 theorem of_sub_int (m : ℤ) (h : Irrational (x - m)) : Irrational x :=
   of_sub_rat m <| by rwa [Rat.cast_coe_int]
 #align irrational.of_sub_int Irrational.of_sub_int
 
-/- warning: irrational.of_int_sub -> Irrational.of_int_sub is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Int), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Int), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Int.cast.{0} Real Real.intCast m) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_int_sub Irrational.of_int_subₓ'. -/
 theorem of_int_sub (m : ℤ) (h : Irrational (m - x)) : Irrational x :=
   of_rat_sub m <| by rwa [Rat.cast_coe_int]
 #align irrational.of_int_sub Irrational.of_int_sub
 
-/- warning: irrational.sub_nat -> Irrational.sub_nat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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))) m)))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast m)))
-Case conversion may be inaccurate. Consider using '#align irrational.sub_nat Irrational.sub_natₓ'. -/
 theorem sub_nat (h : Irrational x) (m : ℕ) : Irrational (x - m) :=
   h.sub_int m
 #align irrational.sub_nat Irrational.sub_nat
 
-/- warning: irrational.nat_sub -> Irrational.nat_sub is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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))) m) x))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Nat.cast.{0} Real Real.natCast m) x))
-Case conversion may be inaccurate. Consider using '#align irrational.nat_sub Irrational.nat_subₓ'. -/
 theorem nat_sub (h : Irrational x) (m : ℕ) : Irrational (m - x) :=
   h.int_sub m
 #align irrational.nat_sub Irrational.nat_sub
 
-/- warning: irrational.of_sub_nat -> Irrational.of_sub_nat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Nat), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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))) m))) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Nat), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast m))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_sub_nat Irrational.of_sub_natₓ'. -/
 theorem of_sub_nat (m : ℕ) (h : Irrational (x - m)) : Irrational x :=
   h.of_sub_int m
 #align irrational.of_sub_nat Irrational.of_sub_nat
 
-/- warning: irrational.of_nat_sub -> Irrational.of_nat_sub is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Nat), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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))) m) x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Nat), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Nat.cast.{0} Real Real.natCast m) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_nat_sub Irrational.of_nat_subₓ'. -/
 theorem of_nat_sub (m : ℕ) (h : Irrational (m - x)) : Irrational x :=
   h.of_int_sub m
 #align irrational.of_nat_sub Irrational.of_nat_sub
@@ -578,12 +326,6 @@ theorem of_nat_sub (m : ℕ) (h : Irrational (m - x)) : Irrational x :=
 -/
 
 
-/- warning: irrational.mul_cases -> Irrational.mul_cases is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} {y : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x y)) -> (Or (Irrational x) (Irrational y))
-but is expected to have type
-  forall {x : Real} {y : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x y)) -> (Or (Irrational x) (Irrational y))
-Case conversion may be inaccurate. Consider using '#align irrational.mul_cases Irrational.mul_casesₓ'. -/
 theorem mul_cases : Irrational (x * y) → Irrational x ∨ Irrational y :=
   by
   delta Irrational
@@ -592,122 +334,50 @@ theorem mul_cases : Irrational (x * y) → Irrational x ∨ Irrational y :=
   exact ⟨rx * ry, cast_mul rx ry⟩
 #align irrational.mul_cases Irrational.mul_cases
 
-/- warning: irrational.of_mul_rat -> Irrational.of_mul_rat is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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))) -> (Irrational x)
-but is expected to have type
-  forall (q : Rat) {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Rat.cast.{0} Real Real.ratCast q))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_mul_rat Irrational.of_mul_ratₓ'. -/
 theorem of_mul_rat (h : Irrational (x * q)) : Irrational x :=
   h.mul_cases.resolve_right q.not_irrational
 #align irrational.of_mul_rat Irrational.of_mul_rat
 
-/- warning: irrational.mul_rat -> Irrational.mul_rat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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 {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Rat.cast.{0} Real Real.ratCast q))))
-Case conversion may be inaccurate. Consider using '#align irrational.mul_rat Irrational.mul_ratₓ'. -/
 theorem mul_rat (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (x * q) :=
   of_mul_rat q⁻¹ <| by rwa [mul_assoc, ← cast_mul, mul_inv_cancel hq, cast_one, mul_one]
 #align irrational.mul_rat Irrational.mul_rat
 
-/- warning: irrational.of_rat_mul -> Irrational.of_rat_mul is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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) x)) -> (Irrational x)
-but is expected to have type
-  forall (q : Rat) {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Rat.cast.{0} Real Real.ratCast q) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_rat_mul Irrational.of_rat_mulₓ'. -/
 theorem of_rat_mul : Irrational (q * x) → Irrational x :=
   mul_comm x q ▸ of_mul_rat q
 #align irrational.of_rat_mul Irrational.of_rat_mul
 
-/- warning: irrational.rat_mul -> Irrational.rat_mul is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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) x)))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Rat.cast.{0} Real Real.ratCast q) x)))
-Case conversion may be inaccurate. Consider using '#align irrational.rat_mul Irrational.rat_mulₓ'. -/
 theorem rat_mul (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (q * x) :=
   mul_comm x q ▸ h.mul_rat hq
 #align irrational.rat_mul Irrational.rat_mul
 
-/- warning: irrational.of_mul_int -> Irrational.of_mul_int is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Int), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Int), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Int.cast.{0} Real Real.intCast m))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_mul_int Irrational.of_mul_intₓ'. -/
 theorem of_mul_int (m : ℤ) (h : Irrational (x * m)) : Irrational x :=
   of_mul_rat m <| by rwa [cast_coe_int]
 #align irrational.of_mul_int Irrational.of_mul_int
 
-/- warning: irrational.of_int_mul -> Irrational.of_int_mul is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Int), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Int), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast m) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_int_mul Irrational.of_int_mulₓ'. -/
 theorem of_int_mul (m : ℤ) (h : Irrational (m * x)) : Irrational x :=
   of_rat_mul m <| by rwa [cast_coe_int]
 #align irrational.of_int_mul Irrational.of_int_mul
 
-/- warning: irrational.mul_int -> Irrational.mul_int is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Int.cast.{0} Real Real.intCast m))))
-Case conversion may be inaccurate. Consider using '#align irrational.mul_int Irrational.mul_intₓ'. -/
 theorem mul_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x * m) := by
   rw [← cast_coe_int]; refine' h.mul_rat _; rwa [Int.cast_ne_zero]
 #align irrational.mul_int Irrational.mul_int
 
-/- warning: irrational.int_mul -> Irrational.int_mul is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast m) x)))
-Case conversion may be inaccurate. Consider using '#align irrational.int_mul Irrational.int_mulₓ'. -/
 theorem int_mul (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (m * x) :=
   mul_comm x m ▸ h.mul_int hm
 #align irrational.int_mul Irrational.int_mul
 
-/- warning: irrational.of_mul_nat -> Irrational.of_mul_nat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Nat), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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))) m))) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Nat), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Nat.cast.{0} Real Real.natCast m))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_mul_nat Irrational.of_mul_natₓ'. -/
 theorem of_mul_nat (m : ℕ) (h : Irrational (x * m)) : Irrational x :=
   h.of_mul_int m
 #align irrational.of_mul_nat Irrational.of_mul_nat
 
-/- warning: irrational.of_nat_mul -> Irrational.of_nat_mul is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Nat), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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))) m) x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Nat), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast m) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_nat_mul Irrational.of_nat_mulₓ'. -/
 theorem of_nat_mul (m : ℕ) (h : Irrational (m * x)) : Irrational x :=
   h.of_int_mul m
 #align irrational.of_nat_mul Irrational.of_nat_mul
 
-/- warning: irrational.mul_nat -> Irrational.mul_nat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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))) m))))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Nat.cast.{0} Real Real.natCast m))))
-Case conversion may be inaccurate. Consider using '#align irrational.mul_nat Irrational.mul_natₓ'. -/
 theorem mul_nat (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (x * m) :=
   h.mul_int <| Int.coe_nat_ne_zero.2 hm
 #align irrational.mul_nat Irrational.mul_nat
 
-/- warning: irrational.nat_mul -> Irrational.nat_mul is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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))) m) x)))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast m) x)))
-Case conversion may be inaccurate. Consider using '#align irrational.nat_mul Irrational.nat_mulₓ'. -/
 theorem nat_mul (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m * x) :=
   h.int_mul <| Int.coe_nat_ne_zero.2 hm
 #align irrational.nat_mul Irrational.nat_mul
@@ -717,21 +387,9 @@ theorem nat_mul (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m * x)
 -/
 
 
-/- warning: irrational.of_inv -> Irrational.of_inv is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational (Inv.inv.{0} Real Real.hasInv x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real}, (Irrational (Inv.inv.{0} Real Real.instInvReal x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_inv Irrational.of_invₓ'. -/
 theorem of_inv (h : Irrational x⁻¹) : Irrational x := fun ⟨q, hq⟩ => h <| hq ▸ ⟨q⁻¹, q.cast_inv⟩
 #align irrational.of_inv Irrational.of_inv
 
-/- warning: irrational.inv -> Irrational.inv is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (Irrational (Inv.inv.{0} Real Real.hasInv x))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (Irrational (Inv.inv.{0} Real Real.instInvReal x))
-Case conversion may be inaccurate. Consider using '#align irrational.inv Irrational.invₓ'. -/
 protected theorem inv (h : Irrational x) : Irrational x⁻¹ :=
   of_inv <| by rwa [inv_inv]
 #align irrational.inv Irrational.inv
@@ -741,142 +399,58 @@ protected theorem inv (h : Irrational x) : Irrational x⁻¹ :=
 -/
 
 
-/- warning: irrational.div_cases -> Irrational.div_cases is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} {y : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x y)) -> (Or (Irrational x) (Irrational y))
-but is expected to have type
-  forall {x : Real} {y : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x y)) -> (Or (Irrational x) (Irrational y))
-Case conversion may be inaccurate. Consider using '#align irrational.div_cases Irrational.div_casesₓ'. -/
 theorem div_cases (h : Irrational (x / y)) : Irrational x ∨ Irrational y :=
   h.mul_cases.imp id of_inv
 #align irrational.div_cases Irrational.div_cases
 
-/- warning: irrational.of_rat_div -> Irrational.of_rat_div is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((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) x)) -> (Irrational x)
-but is expected to have type
-  forall (q : Rat) {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Rat.cast.{0} Real Real.ratCast q) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_rat_div Irrational.of_rat_divₓ'. -/
 theorem of_rat_div (h : Irrational (q / x)) : Irrational x :=
   (h.ofRat_mul q).of_inv
 #align irrational.of_rat_div Irrational.of_rat_div
 
-/- warning: irrational.of_div_rat -> Irrational.of_div_rat is a dubious translation:
-lean 3 declaration is
-  forall (q : Rat) {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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))) -> (Irrational x)
-but is expected to have type
-  forall (q : Rat) {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Rat.cast.{0} Real Real.ratCast q))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_div_rat Irrational.of_div_ratₓ'. -/
 theorem of_div_rat (h : Irrational (x / q)) : Irrational x :=
   h.div_cases.resolve_right q.not_irrational
 #align irrational.of_div_rat Irrational.of_div_rat
 
-/- warning: irrational.rat_div -> Irrational.rat_div is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((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) x)))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Rat.cast.{0} Real Real.ratCast q) x)))
-Case conversion may be inaccurate. Consider using '#align irrational.rat_div Irrational.rat_divₓ'. -/
 theorem rat_div (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (q / x) :=
   h.inv.rat_mul hq
 #align irrational.rat_div Irrational.rat_div
 
-/- warning: irrational.div_rat -> Irrational.div_rat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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 {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Rat.cast.{0} Real Real.ratCast q))))
-Case conversion may be inaccurate. Consider using '#align irrational.div_rat Irrational.div_ratₓ'. -/
 theorem div_rat (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (x / q) := by
   rw [div_eq_mul_inv, ← cast_inv]; exact h.mul_rat (inv_ne_zero hq)
 #align irrational.div_rat Irrational.div_rat
 
-/- warning: irrational.of_int_div -> Irrational.of_int_div is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Int), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Int), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast m) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_int_div Irrational.of_int_divₓ'. -/
 theorem of_int_div (m : ℤ) (h : Irrational (m / x)) : Irrational x :=
   h.div_cases.resolve_left m.not_irrational
 #align irrational.of_int_div Irrational.of_int_div
 
-/- warning: irrational.of_div_int -> Irrational.of_div_int is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Int), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Int), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Int.cast.{0} Real Real.intCast m))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_div_int Irrational.of_div_intₓ'. -/
 theorem of_div_int (m : ℤ) (h : Irrational (x / m)) : Irrational x :=
   h.div_cases.resolve_right m.not_irrational
 #align irrational.of_div_int Irrational.of_div_int
 
-/- warning: irrational.int_div -> Irrational.int_div is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast m) x)))
-Case conversion may be inaccurate. Consider using '#align irrational.int_div Irrational.int_divₓ'. -/
 theorem int_div (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (m / x) :=
   h.inv.int_mul hm
 #align irrational.int_div Irrational.int_div
 
-/- warning: irrational.div_int -> Irrational.div_int is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Int.cast.{0} Real Real.intCast m))))
-Case conversion may be inaccurate. Consider using '#align irrational.div_int Irrational.div_intₓ'. -/
 theorem div_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x / m) := by
   rw [← cast_coe_int]; refine' h.div_rat _; rwa [Int.cast_ne_zero]
 #align irrational.div_int Irrational.div_int
 
-/- warning: irrational.of_nat_div -> Irrational.of_nat_div is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Nat), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{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))) m) x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Nat), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast m) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_nat_div Irrational.of_nat_divₓ'. -/
 theorem of_nat_div (m : ℕ) (h : Irrational (m / x)) : Irrational x :=
   h.of_int_div m
 #align irrational.of_nat_div Irrational.of_nat_div
 
-/- warning: irrational.of_div_nat -> Irrational.of_div_nat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (m : Nat), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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))) m))) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (m : Nat), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Nat.cast.{0} Real Real.natCast m))) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_div_nat Irrational.of_div_natₓ'. -/
 theorem of_div_nat (m : ℕ) (h : Irrational (x / m)) : Irrational x :=
   h.of_div_int m
 #align irrational.of_div_nat Irrational.of_div_nat
 
-/- warning: irrational.nat_div -> Irrational.nat_div is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{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))) m) x)))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast m) x)))
-Case conversion may be inaccurate. Consider using '#align irrational.nat_div Irrational.nat_divₓ'. -/
 theorem nat_div (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m / x) :=
   h.inv.nat_mul hm
 #align irrational.nat_div Irrational.nat_div
 
-/- warning: irrational.div_nat -> Irrational.div_nat is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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))) m))))
-but is expected to have type
-  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Nat.cast.{0} Real Real.natCast m))))
-Case conversion may be inaccurate. Consider using '#align irrational.div_nat Irrational.div_natₓ'. -/
 theorem div_nat (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (x / m) :=
   h.div_int <| by rwa [Int.coe_nat_ne_zero]
 #align irrational.div_nat Irrational.div_nat
 
-/- warning: irrational.of_one_div -> Irrational.of_one_div is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_one_div Irrational.of_one_divₓ'. -/
 theorem of_one_div (h : Irrational (1 / x)) : Irrational x :=
   of_rat_div 1 <| by rwa [cast_one]
 #align irrational.of_one_div Irrational.of_one_div
@@ -886,22 +460,10 @@ theorem of_one_div (h : Irrational (1 / x)) : Irrational x :=
 -/
 
 
-/- warning: irrational.of_mul_self -> Irrational.of_mul_self is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x x)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x x)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_mul_self Irrational.of_mul_selfₓ'. -/
 theorem of_mul_self (h : Irrational (x * x)) : Irrational x :=
   h.mul_cases.elim id id
 #align irrational.of_mul_self Irrational.of_mul_self
 
-/- warning: irrational.of_pow -> Irrational.of_pow is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} (n : Nat), (Irrational (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) x n)) -> (Irrational x)
-but is expected to have type
-  forall {x : Real} (n : Nat), (Irrational (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) x n)) -> (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational.of_pow Irrational.of_powₓ'. -/
 theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
   | 0 => fun h => by rw [pow_zero] at h; exact (h ⟨1, cast_one⟩).elim
   | n + 1 => fun h => by rw [pow_succ] at h; exact h.mul_cases.elim id (of_pow n)
@@ -924,9 +486,6 @@ open Polynomial
 
 variable (x : ℝ) (p : ℤ[X])
 
-/- warning: one_lt_nat_degree_of_irrational_root -> one_lt_natDegree_of_irrational_root is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align one_lt_nat_degree_of_irrational_root one_lt_natDegree_of_irrational_rootₓ'. -/
 theorem one_lt_natDegree_of_irrational_root (hx : Irrational x) (p_nonzero : p ≠ 0)
     (x_is_root : aeval x p = 0) : 1 < p.natDegree :=
   by
@@ -954,299 +513,137 @@ open Irrational
 -/
 
 
-/- warning: irrational_rat_add_iff -> irrational_rat_add_iff is a dubious translation:
-lean 3 declaration is
-  forall {q : Rat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) x)) (Irrational x)
-but is expected to have type
-  forall {q : Rat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Rat.cast.{0} Real Real.ratCast q) x)) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_rat_add_iff irrational_rat_add_iffₓ'. -/
 @[simp]
 theorem irrational_rat_add_iff : Irrational (q + x) ↔ Irrational x :=
   ⟨of_rat_add q, rat_add q⟩
 #align irrational_rat_add_iff irrational_rat_add_iff
 
-/- warning: irrational_int_add_iff -> irrational_int_add_iff is a dubious translation:
-lean 3 declaration is
-  forall {m : Int} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) (Irrational x)
-but is expected to have type
-  forall {m : Int} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_int_add_iff irrational_int_add_iffₓ'. -/
 @[simp]
 theorem irrational_int_add_iff : Irrational (m + x) ↔ Irrational x :=
   ⟨of_int_add m, fun h => h.int_add m⟩
 #align irrational_int_add_iff irrational_int_add_iff
 
-/- warning: irrational_nat_add_iff -> irrational_nat_add_iff is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) n) x)) (Irrational x)
-but is expected to have type
-  forall {n : Nat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_nat_add_iff irrational_nat_add_iffₓ'. -/
 @[simp]
 theorem irrational_nat_add_iff : Irrational (n + x) ↔ Irrational x :=
   ⟨of_nat_add n, fun h => h.natAdd n⟩
 #align irrational_nat_add_iff irrational_nat_add_iff
 
-/- warning: irrational_add_rat_iff -> irrational_add_rat_iff is a dubious translation:
-lean 3 declaration is
-  forall {q : Rat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) (Irrational x)
-but is expected to have type
-  forall {q : Rat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Rat.cast.{0} Real Real.ratCast q))) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_add_rat_iff irrational_add_rat_iffₓ'. -/
 @[simp]
 theorem irrational_add_rat_iff : Irrational (x + q) ↔ Irrational x :=
   ⟨of_add_rat q, add_rat q⟩
 #align irrational_add_rat_iff irrational_add_rat_iff
 
-/- warning: irrational_add_int_iff -> irrational_add_int_iff is a dubious translation:
-lean 3 declaration is
-  forall {m : Int} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) (Irrational x)
-but is expected to have type
-  forall {m : Int} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_add_int_iff irrational_add_int_iffₓ'. -/
 @[simp]
 theorem irrational_add_int_iff : Irrational (x + m) ↔ Irrational x :=
   ⟨of_add_int m, fun h => h.add_int m⟩
 #align irrational_add_int_iff irrational_add_int_iff
 
-/- warning: irrational_add_nat_iff -> irrational_add_nat_iff is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) n))) (Irrational x)
-but is expected to have type
-  forall {n : Nat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_add_nat_iff irrational_add_nat_iffₓ'. -/
 @[simp]
 theorem irrational_add_nat_iff : Irrational (x + n) ↔ Irrational x :=
   ⟨of_add_nat n, fun h => h.addNat n⟩
 #align irrational_add_nat_iff irrational_add_nat_iff
 
-/- warning: irrational_rat_sub_iff -> irrational_rat_sub_iff is a dubious translation:
-lean 3 declaration is
-  forall {q : Rat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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) x)) (Irrational x)
-but is expected to have type
-  forall {q : Rat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Rat.cast.{0} Real Real.ratCast q) x)) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_rat_sub_iff irrational_rat_sub_iffₓ'. -/
 @[simp]
 theorem irrational_rat_sub_iff : Irrational (q - x) ↔ Irrational x :=
   ⟨of_rat_sub q, rat_sub q⟩
 #align irrational_rat_sub_iff irrational_rat_sub_iff
 
-/- warning: irrational_int_sub_iff -> irrational_int_sub_iff is a dubious translation:
-lean 3 declaration is
-  forall {m : Int} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) (Irrational x)
-but is expected to have type
-  forall {m : Int} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Int.cast.{0} Real Real.intCast m) x)) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_int_sub_iff irrational_int_sub_iffₓ'. -/
 @[simp]
 theorem irrational_int_sub_iff : Irrational (m - x) ↔ Irrational x :=
   ⟨of_int_sub m, fun h => h.int_sub m⟩
 #align irrational_int_sub_iff irrational_int_sub_iff
 
-/- warning: irrational_nat_sub_iff -> irrational_nat_sub_iff is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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))) n) x)) (Irrational x)
-but is expected to have type
-  forall {n : Nat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Nat.cast.{0} Real Real.natCast n) x)) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_nat_sub_iff irrational_nat_sub_iffₓ'. -/
 @[simp]
 theorem irrational_nat_sub_iff : Irrational (n - x) ↔ Irrational x :=
   ⟨of_nat_sub n, fun h => h.nat_sub n⟩
 #align irrational_nat_sub_iff irrational_nat_sub_iff
 
-/- warning: irrational_sub_rat_iff -> irrational_sub_rat_iff is a dubious translation:
-lean 3 declaration is
-  forall {q : Rat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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))) (Irrational x)
-but is expected to have type
-  forall {q : Rat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Rat.cast.{0} Real Real.ratCast q))) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_sub_rat_iff irrational_sub_rat_iffₓ'. -/
 @[simp]
 theorem irrational_sub_rat_iff : Irrational (x - q) ↔ Irrational x :=
   ⟨of_sub_rat q, sub_rat q⟩
 #align irrational_sub_rat_iff irrational_sub_rat_iff
 
-/- warning: irrational_sub_int_iff -> irrational_sub_int_iff is a dubious translation:
-lean 3 declaration is
-  forall {m : Int} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) (Irrational x)
-but is expected to have type
-  forall {m : Int} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast m))) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_sub_int_iff irrational_sub_int_iffₓ'. -/
 @[simp]
 theorem irrational_sub_int_iff : Irrational (x - m) ↔ Irrational x :=
   ⟨of_sub_int m, fun h => h.sub_int m⟩
 #align irrational_sub_int_iff irrational_sub_int_iff
 
-/- warning: irrational_sub_nat_iff -> irrational_sub_nat_iff is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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))) n))) (Irrational x)
-but is expected to have type
-  forall {n : Nat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_sub_nat_iff irrational_sub_nat_iffₓ'. -/
 @[simp]
 theorem irrational_sub_nat_iff : Irrational (x - n) ↔ Irrational x :=
   ⟨of_sub_nat n, fun h => h.subNat n⟩
 #align irrational_sub_nat_iff irrational_sub_nat_iff
 
-/- warning: irrational_neg_iff -> irrational_neg_iff is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, Iff (Irrational (Neg.neg.{0} Real Real.hasNeg x)) (Irrational x)
-but is expected to have type
-  forall {x : Real}, Iff (Irrational (Neg.neg.{0} Real Real.instNegReal x)) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_neg_iff irrational_neg_iffₓ'. -/
 @[simp]
 theorem irrational_neg_iff : Irrational (-x) ↔ Irrational x :=
   ⟨of_neg, Irrational.neg⟩
 #align irrational_neg_iff irrational_neg_iff
 
-/- warning: irrational_inv_iff -> irrational_inv_iff is a dubious translation:
-lean 3 declaration is
-  forall {x : Real}, Iff (Irrational (Inv.inv.{0} Real Real.hasInv x)) (Irrational x)
-but is expected to have type
-  forall {x : Real}, Iff (Irrational (Inv.inv.{0} Real Real.instInvReal x)) (Irrational x)
-Case conversion may be inaccurate. Consider using '#align irrational_inv_iff irrational_inv_iffₓ'. -/
 @[simp]
 theorem irrational_inv_iff : Irrational x⁻¹ ↔ Irrational x :=
   ⟨of_inv, Irrational.inv⟩
 #align irrational_inv_iff irrational_inv_iff
 
-/- warning: irrational_rat_mul_iff -> irrational_rat_mul_iff is a dubious translation:
-lean 3 declaration is
-  forall {q : Rat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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) x)) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {q : Rat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Rat.cast.{0} Real Real.ratCast q) x)) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_rat_mul_iff irrational_rat_mul_iffₓ'. -/
 @[simp]
 theorem irrational_rat_mul_iff : Irrational (q * x) ↔ q ≠ 0 ∧ Irrational x :=
   ⟨fun h => ⟨Rat.cast_ne_zero.1 <| left_ne_zero_of_mul h.NeZero, h.ofRat_mul q⟩, fun h =>
     h.2.rat_mul h.1⟩
 #align irrational_rat_mul_iff irrational_rat_mul_iff
 
-/- warning: irrational_mul_rat_iff -> irrational_mul_rat_iff is a dubious translation:
-lean 3 declaration is
-  forall {q : Rat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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))) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {q : Rat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Rat.cast.{0} Real Real.ratCast q))) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_mul_rat_iff irrational_mul_rat_iffₓ'. -/
 @[simp]
 theorem irrational_mul_rat_iff : Irrational (x * q) ↔ q ≠ 0 ∧ Irrational x := by
   rw [mul_comm, irrational_rat_mul_iff]
 #align irrational_mul_rat_iff irrational_mul_rat_iff
 
-/- warning: irrational_int_mul_iff -> irrational_int_mul_iff is a dubious translation:
-lean 3 declaration is
-  forall {m : Int} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {m : Int} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast m) x)) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_int_mul_iff irrational_int_mul_iffₓ'. -/
 @[simp]
 theorem irrational_int_mul_iff : Irrational (m * x) ↔ m ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_int, irrational_rat_mul_iff, Int.cast_ne_zero]
 #align irrational_int_mul_iff irrational_int_mul_iff
 
-/- warning: irrational_mul_int_iff -> irrational_mul_int_iff is a dubious translation:
-lean 3 declaration is
-  forall {m : Int} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {m : Int} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Int.cast.{0} Real Real.intCast m))) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_mul_int_iff irrational_mul_int_iffₓ'. -/
 @[simp]
 theorem irrational_mul_int_iff : Irrational (x * m) ↔ m ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_int, irrational_mul_rat_iff, Int.cast_ne_zero]
 #align irrational_mul_int_iff irrational_mul_int_iff
 
-/- warning: irrational_nat_mul_iff -> irrational_nat_mul_iff is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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))) n) x)) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {n : Nat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) x)) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_nat_mul_iff irrational_nat_mul_iffₓ'. -/
 @[simp]
 theorem irrational_nat_mul_iff : Irrational (n * x) ↔ n ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_nat, irrational_rat_mul_iff, Nat.cast_ne_zero]
 #align irrational_nat_mul_iff irrational_nat_mul_iff
 
-/- warning: irrational_mul_nat_iff -> irrational_mul_nat_iff is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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))) n))) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {n : Nat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Nat.cast.{0} Real Real.natCast n))) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_mul_nat_iff irrational_mul_nat_iffₓ'. -/
 @[simp]
 theorem irrational_mul_nat_iff : Irrational (x * n) ↔ n ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_nat, irrational_mul_rat_iff, Nat.cast_ne_zero]
 #align irrational_mul_nat_iff irrational_mul_nat_iff
 
-/- warning: irrational_rat_div_iff -> irrational_rat_div_iff is a dubious translation:
-lean 3 declaration is
-  forall {q : Rat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((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) x)) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {q : Rat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Rat.cast.{0} Real Real.ratCast q) x)) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_rat_div_iff irrational_rat_div_iffₓ'. -/
 @[simp]
 theorem irrational_rat_div_iff : Irrational (q / x) ↔ q ≠ 0 ∧ Irrational x := by
   simp [div_eq_mul_inv]
 #align irrational_rat_div_iff irrational_rat_div_iff
 
-/- warning: irrational_div_rat_iff -> irrational_div_rat_iff is a dubious translation:
-lean 3 declaration is
-  forall {q : Rat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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))) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {q : Rat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Rat.cast.{0} Real Real.ratCast q))) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_div_rat_iff irrational_div_rat_iffₓ'. -/
 @[simp]
 theorem irrational_div_rat_iff : Irrational (x / q) ↔ q ≠ 0 ∧ Irrational x := by
   rw [div_eq_mul_inv, ← cast_inv, irrational_mul_rat_iff, Ne.def, inv_eq_zero]
 #align irrational_div_rat_iff irrational_div_rat_iff
 
-/- warning: irrational_int_div_iff -> irrational_int_div_iff is a dubious translation:
-lean 3 declaration is
-  forall {m : Int} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {m : Int} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast m) x)) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_int_div_iff irrational_int_div_iffₓ'. -/
 @[simp]
 theorem irrational_int_div_iff : Irrational (m / x) ↔ m ≠ 0 ∧ Irrational x := by
   simp [div_eq_mul_inv]
 #align irrational_int_div_iff irrational_int_div_iff
 
-/- warning: irrational_div_int_iff -> irrational_div_int_iff is a dubious translation:
-lean 3 declaration is
-  forall {m : Int} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {m : Int} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Int.cast.{0} Real Real.intCast m))) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_div_int_iff irrational_div_int_iffₓ'. -/
 @[simp]
 theorem irrational_div_int_iff : Irrational (x / m) ↔ m ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_int, irrational_div_rat_iff, Int.cast_ne_zero]
 #align irrational_div_int_iff irrational_div_int_iff
 
-/- warning: irrational_nat_div_iff -> irrational_nat_div_iff is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{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))) n) x)) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {n : Nat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast n) x)) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_nat_div_iff irrational_nat_div_iffₓ'. -/
 @[simp]
 theorem irrational_nat_div_iff : Irrational (n / x) ↔ n ≠ 0 ∧ Irrational x := by
   simp [div_eq_mul_inv]
 #align irrational_nat_div_iff irrational_nat_div_iff
 
-/- warning: irrational_div_nat_iff -> irrational_div_nat_iff is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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))) n))) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Irrational x))
-but is expected to have type
-  forall {n : Nat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Nat.cast.{0} Real Real.natCast n))) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Irrational x))
-Case conversion may be inaccurate. Consider using '#align irrational_div_nat_iff irrational_div_nat_iffₓ'. -/
 @[simp]
 theorem irrational_div_nat_iff : Irrational (x / n) ↔ n ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_nat, irrational_div_rat_iff, Nat.cast_ne_zero]
 #align irrational_div_nat_iff irrational_div_nat_iff
 
-/- warning: exists_irrational_btwn -> exists_irrational_btwn is a dubious translation:
-lean 3 declaration is
-  forall {x : Real} {y : Real}, (LT.lt.{0} Real Real.hasLt x y) -> (Exists.{1} Real (fun (r : Real) => And (Irrational r) (And (LT.lt.{0} Real Real.hasLt x r) (LT.lt.{0} Real Real.hasLt r y))))
-but is expected to have type
-  forall {x : Real} {y : Real}, (LT.lt.{0} Real Real.instLTReal x y) -> (Exists.{1} Real (fun (r : Real) => And (Irrational r) (And (LT.lt.{0} Real Real.instLTReal x r) (LT.lt.{0} Real Real.instLTReal r y))))
-Case conversion may be inaccurate. Consider using '#align exists_irrational_btwn exists_irrational_btwnₓ'. -/
 /-- There is an irrational number `r` between any two reals `x < r < y`. -/
 theorem exists_irrational_btwn {x y : ℝ} (h : x < y) : ∃ r, Irrational r ∧ x < r ∧ r < y :=
   let ⟨q, ⟨hq1, hq2⟩⟩ := exists_rat_btwn ((sub_lt_sub_iff_right (Real.sqrt 2)).mpr h)
Diff
@@ -50,10 +50,8 @@ theorem irrational_iff_ne_rational (x : ℝ) : Irrational x ↔ ∀ a b : ℤ, x
 
 #print Transcendental.irrational /-
 /-- A transcendental real number is irrational. -/
-theorem Transcendental.irrational {r : ℝ} (tr : Transcendental ℚ r) : Irrational r :=
-  by
-  rintro ⟨a, rfl⟩
-  exact tr (isAlgebraic_algebraMap a)
+theorem Transcendental.irrational {r : ℝ} (tr : Transcendental ℚ r) : Irrational r := by
+  rintro ⟨a, rfl⟩; exact tr (isAlgebraic_algebraMap a)
 #align transcendental.irrational Transcendental.irrational
 -/
 
@@ -75,10 +73,7 @@ theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n
   by
   rintro ⟨⟨N, D, P, C⟩, rfl⟩
   rw [← cast_pow] at hxr
-  have c1 : ((D : ℤ) : ℝ) ≠ 0 :=
-    by
-    rw [Int.cast_ne_zero, Int.coe_nat_ne_zero]
-    exact ne_of_gt P
+  have c1 : ((D : ℤ) : ℝ) ≠ 0 := by rw [Int.cast_ne_zero, Int.coe_nat_ne_zero]; exact ne_of_gt P
   have c2 : ((D : ℤ) : ℝ) ^ n ≠ 0 := pow_ne_zero _ c1
   rw [num_denom', cast_pow, cast_mk, div_pow, div_eq_iff_mul_eq c2, ← Int.cast_pow, ← Int.cast_pow,
     ← Int.cast_mul, Int.cast_inj] at hxr
@@ -109,12 +104,8 @@ theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (
       Nat.zero_mod] using hv
   refine' irrational_nrt_of_notint_nrt _ _ hxr _ hnpos
   rintro ⟨y, rfl⟩
-  rw [← Int.cast_pow, Int.cast_inj] at hxr
-  subst m
-  have : y ≠ 0 := by
-    rintro rfl
-    rw [zero_pow hnpos] at hm
-    exact hm rfl
+  rw [← Int.cast_pow, Int.cast_inj] at hxr; subst m
+  have : y ≠ 0 := by rintro rfl; rw [zero_pow hnpos] at hm; exact hm rfl
   erw [multiplicity.pow' (Nat.prime_iff_prime_int.1 hp.1) (finite_int_iff.2 ⟨hp.1.ne_one, this⟩),
     Nat.mul_mod_right] at hv
   exact hv rfl
@@ -226,10 +217,7 @@ lean 3 declaration is
 but is expected to have type
   forall {x : Real}, (Irrational x) -> (forall (m : Int), Ne.{1} Real x (Int.cast.{0} Real Real.intCast m))
 Case conversion may be inaccurate. Consider using '#align irrational.ne_int Irrational.ne_intₓ'. -/
-theorem ne_int (h : Irrational x) (m : ℤ) : x ≠ m :=
-  by
-  rw [← Rat.cast_coe_int]
-  exact h.ne_rat _
+theorem ne_int (h : Irrational x) (m : ℤ) : x ≠ m := by rw [← Rat.cast_coe_int]; exact h.ne_rat _
 #align irrational.ne_int Irrational.ne_int
 
 /- warning: irrational.ne_nat -> Irrational.ne_nat is a dubious translation:
@@ -362,9 +350,7 @@ lean 3 declaration is
 but is expected to have type
   forall {x : Real} (m : Int), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) -> (Irrational x)
 Case conversion may be inaccurate. Consider using '#align irrational.of_int_add Irrational.of_int_addₓ'. -/
-theorem of_int_add (m : ℤ) (h : Irrational (m + x)) : Irrational x :=
-  by
-  rw [← cast_coe_int] at h
+theorem of_int_add (m : ℤ) (h : Irrational (m + x)) : Irrational x := by rw [← cast_coe_int] at h;
   exact h.of_rat_add m
 #align irrational.of_int_add Irrational.of_int_add
 
@@ -384,9 +370,7 @@ lean 3 declaration is
 but is expected to have type
   forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x))
 Case conversion may be inaccurate. Consider using '#align irrational.int_add Irrational.int_addₓ'. -/
-theorem int_add (h : Irrational x) (m : ℤ) : Irrational (m + x) :=
-  by
-  rw [← cast_coe_int]
+theorem int_add (h : Irrational x) (m : ℤ) : Irrational (m + x) := by rw [← cast_coe_int];
   exact h.rat_add m
 #align irrational.int_add Irrational.int_add
 
@@ -674,11 +658,8 @@ lean 3 declaration is
 but is expected to have type
   forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Int.cast.{0} Real Real.intCast m))))
 Case conversion may be inaccurate. Consider using '#align irrational.mul_int Irrational.mul_intₓ'. -/
-theorem mul_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x * m) :=
-  by
-  rw [← cast_coe_int]
-  refine' h.mul_rat _
-  rwa [Int.cast_ne_zero]
+theorem mul_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x * m) := by
+  rw [← cast_coe_int]; refine' h.mul_rat _; rwa [Int.cast_ne_zero]
 #align irrational.mul_int Irrational.mul_int
 
 /- warning: irrational.int_mul -> Irrational.int_mul is a dubious translation:
@@ -806,10 +787,8 @@ lean 3 declaration is
 but is expected to have type
   forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Rat.cast.{0} Real Real.ratCast q))))
 Case conversion may be inaccurate. Consider using '#align irrational.div_rat Irrational.div_ratₓ'. -/
-theorem div_rat (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (x / q) :=
-  by
-  rw [div_eq_mul_inv, ← cast_inv]
-  exact h.mul_rat (inv_ne_zero hq)
+theorem div_rat (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (x / q) := by
+  rw [div_eq_mul_inv, ← cast_inv]; exact h.mul_rat (inv_ne_zero hq)
 #align irrational.div_rat Irrational.div_rat
 
 /- warning: irrational.of_int_div -> Irrational.of_int_div is a dubious translation:
@@ -848,11 +827,8 @@ lean 3 declaration is
 but is expected to have type
   forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Int.cast.{0} Real Real.intCast m))))
 Case conversion may be inaccurate. Consider using '#align irrational.div_int Irrational.div_intₓ'. -/
-theorem div_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x / m) :=
-  by
-  rw [← cast_coe_int]
-  refine' h.div_rat _
-  rwa [Int.cast_ne_zero]
+theorem div_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x / m) := by
+  rw [← cast_coe_int]; refine' h.div_rat _; rwa [Int.cast_ne_zero]
 #align irrational.div_int Irrational.div_int
 
 /- warning: irrational.of_nat_div -> Irrational.of_nat_div is a dubious translation:
@@ -927,22 +903,14 @@ but is expected to have type
   forall {x : Real} (n : Nat), (Irrational (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) x n)) -> (Irrational x)
 Case conversion may be inaccurate. Consider using '#align irrational.of_pow Irrational.of_powₓ'. -/
 theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
-  | 0 => fun h => by
-    rw [pow_zero] at h
-    exact (h ⟨1, cast_one⟩).elim
-  | n + 1 => fun h => by
-    rw [pow_succ] at h
-    exact h.mul_cases.elim id (of_pow n)
+  | 0 => fun h => by rw [pow_zero] at h; exact (h ⟨1, cast_one⟩).elim
+  | n + 1 => fun h => by rw [pow_succ] at h; exact h.mul_cases.elim id (of_pow n)
 #align irrational.of_pow Irrational.of_pow
 
 #print Irrational.of_zpow /-
 theorem of_zpow : ∀ m : ℤ, Irrational (x ^ m) → Irrational x
-  | (n : ℕ) => fun h => by
-    rw [zpow_ofNat] at h
-    exact h.of_pow _
-  | -[n+1] => fun h => by
-    rw [zpow_negSucc] at h
-    exact h.of_inv.of_pow _
+  | (n : ℕ) => fun h => by rw [zpow_ofNat] at h; exact h.of_pow _
+  | -[n+1] => fun h => by rw [zpow_negSucc] at h; exact h.of_inv.of_pow _
 #align irrational.of_zpow Irrational.of_zpow
 -/
 
@@ -963,16 +931,14 @@ theorem one_lt_natDegree_of_irrational_root (hx : Irrational x) (p_nonzero : p 
     (x_is_root : aeval x p = 0) : 1 < p.natDegree :=
   by
   by_contra rid
-  rcases exists_eq_X_add_C_of_nat_degree_le_one (not_lt.1 rid) with ⟨a, b, rfl⟩
-  clear rid
+  rcases exists_eq_X_add_C_of_nat_degree_le_one (not_lt.1 rid) with ⟨a, b, rfl⟩; clear rid
   have : (a : ℝ) * x = -b := by simpa [eq_neg_iff_add_eq_zero] using x_is_root
   rcases em (a = 0) with (rfl | ha)
   · obtain rfl : b = 0 := by simpa
     simpa using p_nonzero
   · rw [mul_comm, ← eq_div_iff_mul_eq, eq_comm] at this
     refine' hx ⟨-b / a, _⟩
-    assumption_mod_cast
-    assumption_mod_cast
+    assumption_mod_cast; assumption_mod_cast
 #align one_lt_nat_degree_of_irrational_root one_lt_natDegree_of_irrational_root
 
 end Polynomial
Diff
@@ -957,10 +957,7 @@ open Polynomial
 variable (x : ℝ) (p : ℤ[X])
 
 /- warning: one_lt_nat_degree_of_irrational_root -> one_lt_natDegree_of_irrational_root is a dubious translation:
-lean 3 declaration is
-  forall (x : Real) (p : Polynomial.{0} Int Int.semiring), (Irrational x) -> (Ne.{1} (Polynomial.{0} Int Int.semiring) p (OfNat.ofNat.{0} (Polynomial.{0} Int Int.semiring) 0 (OfNat.mk.{0} (Polynomial.{0} Int Int.semiring) 0 (Zero.zero.{0} (Polynomial.{0} Int Int.semiring) (Polynomial.zero.{0} Int Int.semiring))))) -> (Eq.{1} Real (coeFn.{1, 1} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real Int.commSemiring (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.commSemiring (CommSemiring.toSemiring.{0} Int Int.commSemiring) (Algebra.id.{0} Int Int.commSemiring)) (algebraInt.{0} Real Real.ring)) (fun (_x : AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real Int.commSemiring (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.commSemiring (CommSemiring.toSemiring.{0} Int Int.commSemiring) (Algebra.id.{0} Int Int.commSemiring)) (algebraInt.{0} Real Real.ring)) => (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) -> Real) ([anonymous].{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real Int.commSemiring (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.commSemiring (CommSemiring.toSemiring.{0} Int Int.commSemiring) (Algebra.id.{0} Int Int.commSemiring)) (algebraInt.{0} Real Real.ring)) (Polynomial.aeval.{0, 0} Int Real Int.commSemiring Real.semiring (algebraInt.{0} Real Real.ring) x) p) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Polynomial.natDegree.{0} Int Int.semiring p))
-but is expected to have type
-  forall (x : Real) (p : Polynomial.{0} Int Int.instSemiringInt), (Irrational x) -> (Ne.{1} (Polynomial.{0} Int Int.instSemiringInt) p (OfNat.ofNat.{0} (Polynomial.{0} Int Int.instSemiringInt) 0 (Zero.toOfNat0.{0} (Polynomial.{0} Int Int.instSemiringInt) (Polynomial.zero.{0} Int Int.instSemiringInt)))) -> (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) (FunLike.coe.{1, 1, 1} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (fun (_x : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) _x) (SMulHomClass.toFunLike.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (SMulZeroClass.toSMul.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddMonoid.toZero.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))))) (DistribSMul.toSMulZeroClass.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddMonoid.toAddZeroClass.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))))) (DistribMulAction.toDistribSMul.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))))) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt))))))) (SMulZeroClass.toSMul.{0, 0} Int Real (AddMonoid.toZero.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))))) (DistribSMul.toSMulZeroClass.{0, 0} Int Real (AddMonoid.toAddZeroClass.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))))) (DistribMulAction.toDistribSMul.{0, 0} Int Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal)))))) (DistribMulActionHomClass.toSMulHomClass.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))))) (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)))) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{0, 0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal) (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) (AlgHom.algHomClass.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)))))) (Polynomial.aeval.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal) x) p) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) 0 (Zero.toOfNat0.{0} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) Real.instZeroReal))) -> (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Polynomial.natDegree.{0} Int Int.instSemiringInt p))
+<too large>
 Case conversion may be inaccurate. Consider using '#align one_lt_nat_degree_of_irrational_root one_lt_natDegree_of_irrational_rootₓ'. -/
 theorem one_lt_natDegree_of_irrational_root (hx : Irrational x) (p_nonzero : p ≠ 0)
     (x_is_root : aeval x p = 0) : 1 < p.natDegree :=
Diff
@@ -960,7 +960,7 @@ variable (x : ℝ) (p : ℤ[X])
 lean 3 declaration is
   forall (x : Real) (p : Polynomial.{0} Int Int.semiring), (Irrational x) -> (Ne.{1} (Polynomial.{0} Int Int.semiring) p (OfNat.ofNat.{0} (Polynomial.{0} Int Int.semiring) 0 (OfNat.mk.{0} (Polynomial.{0} Int Int.semiring) 0 (Zero.zero.{0} (Polynomial.{0} Int Int.semiring) (Polynomial.zero.{0} Int Int.semiring))))) -> (Eq.{1} Real (coeFn.{1, 1} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real Int.commSemiring (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.commSemiring (CommSemiring.toSemiring.{0} Int Int.commSemiring) (Algebra.id.{0} Int Int.commSemiring)) (algebraInt.{0} Real Real.ring)) (fun (_x : AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real Int.commSemiring (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.commSemiring (CommSemiring.toSemiring.{0} Int Int.commSemiring) (Algebra.id.{0} Int Int.commSemiring)) (algebraInt.{0} Real Real.ring)) => (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) -> Real) ([anonymous].{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real Int.commSemiring (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.commSemiring (CommSemiring.toSemiring.{0} Int Int.commSemiring) (Algebra.id.{0} Int Int.commSemiring)) (algebraInt.{0} Real Real.ring)) (Polynomial.aeval.{0, 0} Int Real Int.commSemiring Real.semiring (algebraInt.{0} Real Real.ring) x) p) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Polynomial.natDegree.{0} Int Int.semiring p))
 but is expected to have type
-  forall (x : Real) (p : Polynomial.{0} Int Int.instSemiringInt), (Irrational x) -> (Ne.{1} (Polynomial.{0} Int Int.instSemiringInt) p (OfNat.ofNat.{0} (Polynomial.{0} Int Int.instSemiringInt) 0 (Zero.toOfNat0.{0} (Polynomial.{0} Int Int.instSemiringInt) (Polynomial.zero.{0} Int Int.instSemiringInt)))) -> (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) (FunLike.coe.{1, 1, 1} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (fun (_x : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) _x) (SMulHomClass.toFunLike.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (SMulZeroClass.toSMul.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddMonoid.toZero.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))))) (DistribSMul.toSMulZeroClass.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddMonoid.toAddZeroClass.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))))) (DistribMulAction.toDistribSMul.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))))) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt))))))) (SMulZeroClass.toSMul.{0, 0} Int Real (AddMonoid.toZero.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))))) (DistribSMul.toSMulZeroClass.{0, 0} Int Real (AddMonoid.toAddZeroClass.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))))) (DistribMulAction.toDistribSMul.{0, 0} Int Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal)))))) (DistribMulActionHomClass.toSMulHomClass.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))))) (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)))) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{0, 0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal) (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) (AlgHom.algHomClass.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)))))) (Polynomial.aeval.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal) x) p) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) 0 (Zero.toOfNat0.{0} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) Real.instZeroReal))) -> (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Polynomial.natDegree.{0} Int Int.instSemiringInt p))
+  forall (x : Real) (p : Polynomial.{0} Int Int.instSemiringInt), (Irrational x) -> (Ne.{1} (Polynomial.{0} Int Int.instSemiringInt) p (OfNat.ofNat.{0} (Polynomial.{0} Int Int.instSemiringInt) 0 (Zero.toOfNat0.{0} (Polynomial.{0} Int Int.instSemiringInt) (Polynomial.zero.{0} Int Int.instSemiringInt)))) -> (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) (FunLike.coe.{1, 1, 1} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (fun (_x : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) _x) (SMulHomClass.toFunLike.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (SMulZeroClass.toSMul.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddMonoid.toZero.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))))) (DistribSMul.toSMulZeroClass.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddMonoid.toAddZeroClass.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))))) (DistribMulAction.toDistribSMul.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))))) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt))))))) (SMulZeroClass.toSMul.{0, 0} Int Real (AddMonoid.toZero.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))))) (DistribSMul.toSMulZeroClass.{0, 0} Int Real (AddMonoid.toAddZeroClass.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))))) (DistribMulAction.toDistribSMul.{0, 0} Int Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal)))))) (DistribMulActionHomClass.toSMulHomClass.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))))) (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)))) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{0, 0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal) (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) (AlgHom.algHomClass.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)))))) (Polynomial.aeval.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal) x) p) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) 0 (Zero.toOfNat0.{0} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) Real.instZeroReal))) -> (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Polynomial.natDegree.{0} Int Int.instSemiringInt p))
 Case conversion may be inaccurate. Consider using '#align one_lt_nat_degree_of_irrational_root one_lt_natDegree_of_irrational_rootₓ'. -/
 theorem one_lt_natDegree_of_irrational_root (hx : Irrational x) (p_nonzero : p ≠ 0)
     (x_is_root : aeval x p = 0) : 1 < p.natDegree :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro, Abhimanyu Pallavi Sudhir, Jean Lo, Calle Sönne, Yury Kudryashov
 
 ! This file was ported from Lean 3 source module data.real.irrational
-! leanprover-community/mathlib commit 7e7aaccf9b0182576cabdde36cf1b5ad3585b70d
+! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -17,6 +17,9 @@ import Mathbin.RingTheory.Int.Basic
 /-!
 # Irrational real numbers
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file we define a predicate `irrational` on `ℝ`, prove that the `n`-th root of an integer
 number is irrational if it is not integer, and that `sqrt q` is irrational if and only if
 `rat.sqrt q * rat.sqrt q ≠ q ∧ 0 ≤ q`.
Diff
@@ -27,28 +27,44 @@ We also provide dot-style constructors like `irrational.add_rat`, `irrational.ra
 
 open Rat Real multiplicity
 
+#print Irrational /-
 /-- A real number is irrational if it is not equal to any rational number. -/
 def Irrational (x : ℝ) :=
   x ∉ Set.range (coe : ℚ → ℝ)
 #align irrational Irrational
+-/
 
+/- warning: irrational_iff_ne_rational -> irrational_iff_ne_rational is a dubious translation:
+lean 3 declaration is
+  forall (x : Real), Iff (Irrational x) (forall (a : Int) (b : Int), Ne.{1} Real x (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) b)))
+but is expected to have type
+  forall (x : Real), Iff (Irrational x) (forall (a : Int) (b : Int), Ne.{1} Real x (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast a) (Int.cast.{0} Real Real.intCast b)))
+Case conversion may be inaccurate. Consider using '#align irrational_iff_ne_rational irrational_iff_ne_rationalₓ'. -/
 theorem irrational_iff_ne_rational (x : ℝ) : Irrational x ↔ ∀ a b : ℤ, x ≠ a / b := by
   simp only [Irrational, Rat.forall, cast_mk, not_exists, Set.mem_range, cast_coe_int, cast_div,
     eq_comm]
 #align irrational_iff_ne_rational irrational_iff_ne_rational
 
+#print Transcendental.irrational /-
 /-- A transcendental real number is irrational. -/
 theorem Transcendental.irrational {r : ℝ} (tr : Transcendental ℚ r) : Irrational r :=
   by
   rintro ⟨a, rfl⟩
   exact tr (isAlgebraic_algebraMap a)
 #align transcendental.irrational Transcendental.irrational
+-/
 
 /-!
 ### Irrationality of roots of integer and rational numbers
 -/
 
 
+/- warning: irrational_nrt_of_notint_nrt -> irrational_nrt_of_notint_nrt is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (n : Nat) (m : Int), (Eq.{1} Real (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) x n) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m)) -> (Not (Exists.{1} Int (fun (y : Int) => Eq.{1} Real x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) y)))) -> (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (n : Nat) (m : Int), (Eq.{1} Real (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) x n) (Int.cast.{0} Real Real.intCast m)) -> (Not (Exists.{1} Int (fun (y : Int) => Eq.{1} Real x (Int.cast.{0} Real Real.intCast y)))) -> (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_nrt_of_notint_nrt irrational_nrt_of_notint_nrtₓ'. -/
 /-- If `x^n`, `n > 0`, is integer and is not the `n`-th power of an integer, then
 `x` is irrational. -/
 theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n = m)
@@ -71,6 +87,12 @@ theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n
   rw [num_denom', Int.ofNat_one, mk_eq_div, Int.cast_one, div_one, cast_coe_int]
 #align irrational_nrt_of_notint_nrt irrational_nrt_of_notint_nrt
 
+/- warning: irrational_nrt_of_n_not_dvd_multiplicity -> irrational_nrt_of_n_not_dvd_multiplicity is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (n : Nat) {m : Int} (hm : Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (p : Nat) [hp : Fact (Nat.Prime p)], (Eq.{1} Real (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) x n) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m)) -> (Ne.{1} Nat (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.hasMod) (Part.get.{0} Nat (multiplicity.{0} Int Int.monoid (fun (a : Int) (b : Int) => Int.decidableDvd a b) ((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) m) (Iff.mpr (multiplicity.Finite.{0} Int Int.monoid ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) p) m) (And (Ne.{1} Nat (Int.natAbs ((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)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))))) (multiplicity.finite_int_iff ((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) m) (And.intro (Ne.{1} Nat (Int.natAbs ((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)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Nat.Prime.ne_one p (Fact.out (Nat.Prime p) hp)) hm))) n) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (n : Nat) {m : Int} (hm : Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (p : Nat) [hp : Fact (Nat.Prime p)], (Eq.{1} Real (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) x n) (Int.cast.{0} Real Real.intCast m)) -> (Ne.{1} Nat (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.instModNat) (Part.get.{0} Nat (multiplicity.{0} Int Int.instMonoidInt (fun (a : Int) (b : Int) => Int.decidableDvd a b) (Nat.cast.{0} Int instNatCastInt p) m) (Iff.mpr (multiplicity.Finite.{0} Int Int.instMonoidInt (Nat.cast.{0} Int instNatCastInt p) m) (And (Ne.{1} Nat (Int.natAbs (Nat.cast.{0} Int instNatCastInt p)) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))) (multiplicity.finite_int_iff (Nat.cast.{0} Int instNatCastInt p) m) (And.intro (Ne.{1} Nat (Int.natAbs (Nat.cast.{0} Int instNatCastInt p)) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Nat.Prime.ne_one p (Fact.out (Nat.Prime p) hp)) hm))) n) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_nrt_of_n_not_dvd_multiplicity irrational_nrt_of_n_not_dvd_multiplicityₓ'. -/
 /-- If `x^n = m` is an integer and `n` does not divide the `multiplicity p m`, then `x`
 is irrational. -/
 theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (hm : m ≠ 0) (p : ℕ)
@@ -95,6 +117,12 @@ theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (
   exact hv rfl
 #align irrational_nrt_of_n_not_dvd_multiplicity irrational_nrt_of_n_not_dvd_multiplicity
 
+/- warning: irrational_sqrt_of_multiplicity_odd -> irrational_sqrt_of_multiplicity_odd is a dubious translation:
+lean 3 declaration is
+  forall (m : Int) (hm : LT.lt.{0} Int Int.hasLt (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) m) (p : Nat) [hp : Fact (Nat.Prime p)], (Eq.{1} Nat (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.hasMod) (Part.get.{0} Nat (multiplicity.{0} Int Int.monoid (fun (a : Int) (b : Int) => Int.decidableDvd a b) ((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) m) (Iff.mpr (multiplicity.Finite.{0} Int Int.monoid ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) p) m) (And (Ne.{1} Nat (Int.natAbs ((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)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))))) (multiplicity.finite_int_iff ((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) m) (And.intro (Ne.{1} Nat (Int.natAbs ((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)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Nat.Prime.ne_one p (Fact.out (Nat.Prime p) hp)) (Ne.symm.{1} Int (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) m (ne_of_lt.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) m hm))))) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) -> (Irrational (Real.sqrt ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m)))
+but is expected to have type
+  forall (m : Int) (hm : LT.lt.{0} Int Int.instLTInt (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) m) (p : Nat) [hp : Fact (Nat.Prime p)], (Eq.{1} Nat (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.instModNat) (Part.get.{0} Nat (multiplicity.{0} Int Int.instMonoidInt (fun (a : Int) (b : Int) => Int.decidableDvd a b) (Nat.cast.{0} Int instNatCastInt p) m) (Iff.mpr (multiplicity.Finite.{0} Int Int.instMonoidInt (Nat.cast.{0} Int instNatCastInt p) m) (And (Ne.{1} Nat (Int.natAbs (Nat.cast.{0} Int instNatCastInt p)) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))) (multiplicity.finite_int_iff (Nat.cast.{0} Int instNatCastInt p) m) (And.intro (Ne.{1} Nat (Int.natAbs (Nat.cast.{0} Int instNatCastInt p)) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Nat.Prime.ne_one p (Fact.out (Nat.Prime p) hp)) (Ne.symm.{1} Int (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) m (ne_of_lt.{0} Int (PartialOrder.toPreorder.{0} Int (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) m hm))))) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) -> (Irrational (Real.sqrt (Int.cast.{0} Real Real.intCast m)))
+Case conversion may be inaccurate. Consider using '#align irrational_sqrt_of_multiplicity_odd irrational_sqrt_of_multiplicity_oddₓ'. -/
 theorem irrational_sqrt_of_multiplicity_odd (m : ℤ) (hm : 0 < m) (p : ℕ) [hp : Fact p.Prime]
     (Hpv :
       (multiplicity (p : ℤ) m).get (finite_int_iff.2 ⟨hp.1.ne_one, (ne_of_lt hm).symm⟩) % 2 = 1) :
@@ -103,16 +131,34 @@ theorem irrational_sqrt_of_multiplicity_odd (m : ℤ) (hm : 0 < m) (p : ℕ) [hp
     (sq_sqrt (Int.cast_nonneg.2 <| le_of_lt hm)) (by rw [Hpv] <;> exact one_ne_zero)
 #align irrational_sqrt_of_multiplicity_odd irrational_sqrt_of_multiplicity_odd
 
+/- warning: nat.prime.irrational_sqrt -> Nat.Prime.irrational_sqrt is a dubious translation:
+lean 3 declaration is
+  forall {p : Nat}, (Nat.Prime p) -> (Irrational (Real.sqrt ((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}, (Nat.Prime p) -> (Irrational (Real.sqrt (Nat.cast.{0} Real Real.natCast p)))
+Case conversion may be inaccurate. Consider using '#align nat.prime.irrational_sqrt Nat.Prime.irrational_sqrtₓ'. -/
 theorem Nat.Prime.irrational_sqrt {p : ℕ} (hp : Nat.Prime p) : Irrational (sqrt p) :=
   @irrational_sqrt_of_multiplicity_odd p (Int.coe_nat_pos.2 hp.Pos) p ⟨hp⟩ <| by
     simp [multiplicity_self (mt isUnit_iff_dvd_one.1 (mt Int.coe_nat_dvd.1 hp.not_dvd_one) : _)] <;>
       rfl
 #align nat.prime.irrational_sqrt Nat.Prime.irrational_sqrt
 
+/- warning: irrational_sqrt_two -> irrational_sqrt_two is a dubious translation:
+lean 3 declaration is
+  Irrational (Real.sqrt (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))
+but is expected to have type
+  Irrational (Real.sqrt (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))
+Case conversion may be inaccurate. Consider using '#align irrational_sqrt_two irrational_sqrt_twoₓ'. -/
 /-- **Irrationality of the Square Root of 2** -/
 theorem irrational_sqrt_two : Irrational (sqrt 2) := by simpa using nat.prime_two.irrational_sqrt
 #align irrational_sqrt_two irrational_sqrt_two
 
+/- warning: irrational_sqrt_rat_iff -> irrational_sqrt_rat_iff is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat), Iff (Irrational (Real.sqrt ((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))) (And (Ne.{1} Rat (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.hasMul) (Rat.sqrt q) (Rat.sqrt q)) q) (LE.le.{0} Rat Rat.hasLe (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero))) q))
+but is expected to have type
+  forall (q : Rat), Iff (Irrational (Real.sqrt (Rat.cast.{0} Real Real.ratCast q))) (And (Ne.{1} Rat (HMul.hMul.{0, 0, 0} Rat Rat Rat (instHMul.{0} Rat Rat.instMulRat) (Rat.sqrt q) (Rat.sqrt q)) q) (LE.le.{0} Rat Rat.instLERat (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0)) q))
+Case conversion may be inaccurate. Consider using '#align irrational_sqrt_rat_iff irrational_sqrt_rat_iffₓ'. -/
 theorem irrational_sqrt_rat_iff (q : ℚ) :
     Irrational (sqrt q) ↔ Rat.sqrt q * Rat.sqrt q ≠ q ∧ 0 ≤ q :=
   if H1 : Rat.sqrt q * Rat.sqrt q = q then
@@ -162,35 +208,83 @@ variable {x : ℝ}
 -/
 
 
+/- warning: irrational.ne_rat -> Irrational.ne_rat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall (q : Rat), Ne.{1} Real x ((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 {x : Real}, (Irrational x) -> (forall (q : Rat), Ne.{1} Real x (Rat.cast.{0} Real Real.ratCast q))
+Case conversion may be inaccurate. Consider using '#align irrational.ne_rat Irrational.ne_ratₓ'. -/
 theorem ne_rat (h : Irrational x) (q : ℚ) : x ≠ q := fun hq => h ⟨q, hq.symm⟩
 #align irrational.ne_rat Irrational.ne_rat
 
+/- warning: irrational.ne_int -> Irrational.ne_int is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall (m : Int), Ne.{1} Real x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall (m : Int), Ne.{1} Real x (Int.cast.{0} Real Real.intCast m))
+Case conversion may be inaccurate. Consider using '#align irrational.ne_int Irrational.ne_intₓ'. -/
 theorem ne_int (h : Irrational x) (m : ℤ) : x ≠ m :=
   by
   rw [← Rat.cast_coe_int]
   exact h.ne_rat _
 #align irrational.ne_int Irrational.ne_int
 
+/- warning: irrational.ne_nat -> Irrational.ne_nat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Ne.{1} Real x ((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))) m))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Ne.{1} Real x (Nat.cast.{0} Real Real.natCast m))
+Case conversion may be inaccurate. Consider using '#align irrational.ne_nat Irrational.ne_natₓ'. -/
 theorem ne_nat (h : Irrational x) (m : ℕ) : x ≠ m :=
   h.ne_int m
 #align irrational.ne_nat Irrational.ne_nat
 
+/- warning: irrational.ne_zero -> Irrational.ne_zero is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (Ne.{1} Real x (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (Ne.{1} Real x (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
+Case conversion may be inaccurate. Consider using '#align irrational.ne_zero Irrational.ne_zeroₓ'. -/
 theorem ne_zero (h : Irrational x) : x ≠ 0 := by exact_mod_cast h.ne_nat 0
 #align irrational.ne_zero Irrational.ne_zero
 
+/- warning: irrational.ne_one -> Irrational.ne_one is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (Ne.{1} Real x (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (Ne.{1} Real x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align irrational.ne_one Irrational.ne_oneₓ'. -/
 theorem ne_one (h : Irrational x) : x ≠ 1 := by simpa only [Nat.cast_one] using h.ne_nat 1
 #align irrational.ne_one Irrational.ne_one
 
 end Irrational
 
+/- warning: rat.not_irrational -> Rat.not_irrational is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat), Not (Irrational ((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 (q : Rat), Not (Irrational (Rat.cast.{0} Real Real.ratCast q))
+Case conversion may be inaccurate. Consider using '#align rat.not_irrational Rat.not_irrationalₓ'. -/
 @[simp]
 theorem Rat.not_irrational (q : ℚ) : ¬Irrational q := fun h => h ⟨q, rfl⟩
 #align rat.not_irrational Rat.not_irrational
 
+/- warning: int.not_irrational -> Int.not_irrational is a dubious translation:
+lean 3 declaration is
+  forall (m : Int), Not (Irrational ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))
+but is expected to have type
+  forall (m : Int), Not (Irrational (Int.cast.{0} Real Real.intCast m))
+Case conversion may be inaccurate. Consider using '#align int.not_irrational Int.not_irrationalₓ'. -/
 @[simp]
 theorem Int.not_irrational (m : ℤ) : ¬Irrational m := fun h => h.ne_int m rfl
 #align int.not_irrational Int.not_irrational
 
+/- warning: nat.not_irrational -> Nat.not_irrational is a dubious translation:
+lean 3 declaration is
+  forall (m : Nat), Not (Irrational ((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))) m))
+but is expected to have type
+  forall (m : Nat), Not (Irrational (Nat.cast.{0} Real Real.natCast m))
+Case conversion may be inaccurate. Consider using '#align nat.not_irrational Nat.not_irrationalₓ'. -/
 @[simp]
 theorem Nat.not_irrational (m : ℕ) : ¬Irrational m := fun h => h.ne_nat m rfl
 #align nat.not_irrational Nat.not_irrational
@@ -204,6 +298,12 @@ variable (q : ℚ) {x y : ℝ}
 -/
 
 
+/- warning: irrational.add_cases -> Irrational.add_cases is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} {y : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x y)) -> (Or (Irrational x) (Irrational y))
+but is expected to have type
+  forall {x : Real} {y : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x y)) -> (Or (Irrational x) (Irrational y))
+Case conversion may be inaccurate. Consider using '#align irrational.add_cases Irrational.add_casesₓ'. -/
 /-- If `x + y` is irrational, then at least one of `x` and `y` is irrational. -/
 theorem add_cases : Irrational (x + y) → Irrational x ∨ Irrational y :=
   by
@@ -213,54 +313,126 @@ theorem add_cases : Irrational (x + y) → Irrational x ∨ Irrational y :=
   exact ⟨rx + ry, cast_add rx ry⟩
 #align irrational.add_cases Irrational.add_cases
 
+/- warning: irrational.of_rat_add -> Irrational.of_rat_add is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) x)) -> (Irrational x)
+but is expected to have type
+  forall (q : Rat) {x : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Rat.cast.{0} Real Real.ratCast q) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_rat_add Irrational.of_rat_addₓ'. -/
 theorem of_rat_add (h : Irrational (q + x)) : Irrational x :=
   h.addCases.resolve_left q.not_irrational
 #align irrational.of_rat_add Irrational.of_rat_add
 
+/- warning: irrational.rat_add -> Irrational.rat_add is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) x))
+but is expected to have type
+  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Rat.cast.{0} Real Real.ratCast q) x))
+Case conversion may be inaccurate. Consider using '#align irrational.rat_add Irrational.rat_addₓ'. -/
 theorem rat_add (h : Irrational x) : Irrational (q + x) :=
   of_rat_add (-q) <| by rwa [cast_neg, neg_add_cancel_left]
 #align irrational.rat_add Irrational.rat_add
 
+/- warning: irrational.of_add_rat -> Irrational.of_add_rat is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) -> (Irrational x)
+but is expected to have type
+  forall (q : Rat) {x : Real}, (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Rat.cast.{0} Real Real.ratCast q))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_add_rat Irrational.of_add_ratₓ'. -/
 theorem of_add_rat : Irrational (x + q) → Irrational x :=
   add_comm (↑q) x ▸ of_rat_add q
 #align irrational.of_add_rat Irrational.of_add_rat
 
+/- warning: irrational.add_rat -> Irrational.add_rat is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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 (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Rat.cast.{0} Real Real.ratCast q)))
+Case conversion may be inaccurate. Consider using '#align irrational.add_rat Irrational.add_ratₓ'. -/
 theorem add_rat (h : Irrational x) : Irrational (x + q) :=
   add_comm (↑q) x ▸ h.rat_add q
 #align irrational.add_rat Irrational.add_rat
 
+/- warning: irrational.of_int_add -> Irrational.of_int_add is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Int), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Int), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_int_add Irrational.of_int_addₓ'. -/
 theorem of_int_add (m : ℤ) (h : Irrational (m + x)) : Irrational x :=
   by
   rw [← cast_coe_int] at h
   exact h.of_rat_add m
 #align irrational.of_int_add Irrational.of_int_add
 
+/- warning: irrational.of_add_int -> Irrational.of_add_int is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Int), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Int), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_add_int Irrational.of_add_intₓ'. -/
 theorem of_add_int (m : ℤ) (h : Irrational (x + m)) : Irrational x :=
   of_int_add m <| add_comm x m ▸ h
 #align irrational.of_add_int Irrational.of_add_int
 
+/- warning: irrational.int_add -> Irrational.int_add is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x))
+Case conversion may be inaccurate. Consider using '#align irrational.int_add Irrational.int_addₓ'. -/
 theorem int_add (h : Irrational x) (m : ℤ) : Irrational (m + x) :=
   by
   rw [← cast_coe_int]
   exact h.rat_add m
 #align irrational.int_add Irrational.int_add
 
+/- warning: irrational.add_int -> Irrational.add_int is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m)))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m)))
+Case conversion may be inaccurate. Consider using '#align irrational.add_int Irrational.add_intₓ'. -/
 theorem add_int (h : Irrational x) (m : ℤ) : Irrational (x + m) :=
   add_comm (↑m) x ▸ h.int_add m
 #align irrational.add_int Irrational.add_int
 
+/- warning: irrational.of_nat_add -> Irrational.of_nat_add is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Nat), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) m) x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Nat), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast m) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_nat_add Irrational.of_nat_addₓ'. -/
 theorem of_nat_add (m : ℕ) (h : Irrational (m + x)) : Irrational x :=
   h.of_int_add m
 #align irrational.of_nat_add Irrational.of_nat_add
 
+/- warning: irrational.of_add_nat -> Irrational.of_add_nat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Nat), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) m))) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Nat), (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast m))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_add_nat Irrational.of_add_natₓ'. -/
 theorem of_add_nat (m : ℕ) (h : Irrational (x + m)) : Irrational x :=
   h.of_add_int m
 #align irrational.of_add_nat Irrational.of_add_nat
 
+/- warning: irrational.nat_add -> Irrational.nat_add is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) m) x))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast m) x))
+Case conversion may be inaccurate. Consider using '#align irrational.nat_add Irrational.nat_addₓ'. -/
 theorem nat_add (h : Irrational x) (m : ℕ) : Irrational (m + x) :=
   h.int_add m
 #align irrational.nat_add Irrational.nat_add
 
+/- warning: irrational.add_nat -> Irrational.add_nat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) m)))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast m)))
+Case conversion may be inaccurate. Consider using '#align irrational.add_nat Irrational.add_natₓ'. -/
 theorem add_nat (h : Irrational x) (m : ℕ) : Irrational (x + m) :=
   h.add_int m
 #align irrational.add_nat Irrational.add_nat
@@ -270,9 +442,21 @@ theorem add_nat (h : Irrational x) (m : ℕ) : Irrational (x + m) :=
 -/
 
 
+/- warning: irrational.of_neg -> Irrational.of_neg is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational (Neg.neg.{0} Real Real.hasNeg x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real}, (Irrational (Neg.neg.{0} Real Real.instNegReal x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_neg Irrational.of_negₓ'. -/
 theorem of_neg (h : Irrational (-x)) : Irrational x := fun ⟨q, hx⟩ => h ⟨-q, by rw [cast_neg, hx]⟩
 #align irrational.of_neg Irrational.of_neg
 
+/- warning: irrational.neg -> Irrational.neg is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (Irrational (Neg.neg.{0} Real Real.hasNeg x))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (Irrational (Neg.neg.{0} Real Real.instNegReal x))
+Case conversion may be inaccurate. Consider using '#align irrational.neg Irrational.negₓ'. -/
 protected theorem neg (h : Irrational x) : Irrational (-x) :=
   of_neg <| by rwa [neg_neg]
 #align irrational.neg Irrational.neg
@@ -282,50 +466,122 @@ protected theorem neg (h : Irrational x) : Irrational (-x) :=
 -/
 
 
+/- warning: irrational.sub_rat -> Irrational.sub_rat is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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 (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Rat.cast.{0} Real Real.ratCast q)))
+Case conversion may be inaccurate. Consider using '#align irrational.sub_rat Irrational.sub_ratₓ'. -/
 theorem sub_rat (h : Irrational x) : Irrational (x - q) := by
   simpa only [sub_eq_add_neg, cast_neg] using h.add_rat (-q)
 #align irrational.sub_rat Irrational.sub_rat
 
+/- warning: irrational.rat_sub -> Irrational.rat_sub is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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) x))
+but is expected to have type
+  forall (q : Rat) {x : Real}, (Irrational x) -> (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Rat.cast.{0} Real Real.ratCast q) x))
+Case conversion may be inaccurate. Consider using '#align irrational.rat_sub Irrational.rat_subₓ'. -/
 theorem rat_sub (h : Irrational x) : Irrational (q - x) := by
   simpa only [sub_eq_add_neg] using h.neg.rat_add q
 #align irrational.rat_sub Irrational.rat_sub
 
+/- warning: irrational.of_sub_rat -> Irrational.of_sub_rat is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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))) -> (Irrational x)
+but is expected to have type
+  forall (q : Rat) {x : Real}, (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Rat.cast.{0} Real Real.ratCast q))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_sub_rat Irrational.of_sub_ratₓ'. -/
 theorem of_sub_rat (h : Irrational (x - q)) : Irrational x :=
   of_add_rat (-q) <| by simpa only [cast_neg, sub_eq_add_neg] using h
 #align irrational.of_sub_rat Irrational.of_sub_rat
 
+/- warning: irrational.of_rat_sub -> Irrational.of_rat_sub is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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) x)) -> (Irrational x)
+but is expected to have type
+  forall (q : Rat) {x : Real}, (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Rat.cast.{0} Real Real.ratCast q) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_rat_sub Irrational.of_rat_subₓ'. -/
 theorem of_rat_sub (h : Irrational (q - x)) : Irrational x :=
   of_neg (of_rat_add q (by simpa only [sub_eq_add_neg] using h))
 #align irrational.of_rat_sub Irrational.of_rat_sub
 
+/- warning: irrational.sub_int -> Irrational.sub_int is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m)))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast m)))
+Case conversion may be inaccurate. Consider using '#align irrational.sub_int Irrational.sub_intₓ'. -/
 theorem sub_int (h : Irrational x) (m : ℤ) : Irrational (x - m) := by
   simpa only [Rat.cast_coe_int] using h.sub_rat m
 #align irrational.sub_int Irrational.sub_int
 
+/- warning: irrational.int_sub -> Irrational.int_sub is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall (m : Int), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Int.cast.{0} Real Real.intCast m) x))
+Case conversion may be inaccurate. Consider using '#align irrational.int_sub Irrational.int_subₓ'. -/
 theorem int_sub (h : Irrational x) (m : ℤ) : Irrational (m - x) := by
   simpa only [Rat.cast_coe_int] using h.rat_sub m
 #align irrational.int_sub Irrational.int_sub
 
+/- warning: irrational.of_sub_int -> Irrational.of_sub_int is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Int), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Int), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast m))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_sub_int Irrational.of_sub_intₓ'. -/
 theorem of_sub_int (m : ℤ) (h : Irrational (x - m)) : Irrational x :=
   of_sub_rat m <| by rwa [Rat.cast_coe_int]
 #align irrational.of_sub_int Irrational.of_sub_int
 
+/- warning: irrational.of_int_sub -> Irrational.of_int_sub is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Int), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Int), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Int.cast.{0} Real Real.intCast m) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_int_sub Irrational.of_int_subₓ'. -/
 theorem of_int_sub (m : ℤ) (h : Irrational (m - x)) : Irrational x :=
   of_rat_sub m <| by rwa [Rat.cast_coe_int]
 #align irrational.of_int_sub Irrational.of_int_sub
 
+/- warning: irrational.sub_nat -> Irrational.sub_nat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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))) m)))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast m)))
+Case conversion may be inaccurate. Consider using '#align irrational.sub_nat Irrational.sub_natₓ'. -/
 theorem sub_nat (h : Irrational x) (m : ℕ) : Irrational (x - m) :=
   h.sub_int m
 #align irrational.sub_nat Irrational.sub_nat
 
+/- warning: irrational.nat_sub -> Irrational.nat_sub is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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))) m) x))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall (m : Nat), Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Nat.cast.{0} Real Real.natCast m) x))
+Case conversion may be inaccurate. Consider using '#align irrational.nat_sub Irrational.nat_subₓ'. -/
 theorem nat_sub (h : Irrational x) (m : ℕ) : Irrational (m - x) :=
   h.int_sub m
 #align irrational.nat_sub Irrational.nat_sub
 
+/- warning: irrational.of_sub_nat -> Irrational.of_sub_nat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Nat), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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))) m))) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Nat), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast m))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_sub_nat Irrational.of_sub_natₓ'. -/
 theorem of_sub_nat (m : ℕ) (h : Irrational (x - m)) : Irrational x :=
   h.of_sub_int m
 #align irrational.of_sub_nat Irrational.of_sub_nat
 
+/- warning: irrational.of_nat_sub -> Irrational.of_nat_sub is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Nat), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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))) m) x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Nat), (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Nat.cast.{0} Real Real.natCast m) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_nat_sub Irrational.of_nat_subₓ'. -/
 theorem of_nat_sub (m : ℕ) (h : Irrational (m - x)) : Irrational x :=
   h.of_int_sub m
 #align irrational.of_nat_sub Irrational.of_nat_sub
@@ -335,6 +591,12 @@ theorem of_nat_sub (m : ℕ) (h : Irrational (m - x)) : Irrational x :=
 -/
 
 
+/- warning: irrational.mul_cases -> Irrational.mul_cases is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} {y : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x y)) -> (Or (Irrational x) (Irrational y))
+but is expected to have type
+  forall {x : Real} {y : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x y)) -> (Or (Irrational x) (Irrational y))
+Case conversion may be inaccurate. Consider using '#align irrational.mul_cases Irrational.mul_casesₓ'. -/
 theorem mul_cases : Irrational (x * y) → Irrational x ∨ Irrational y :=
   by
   delta Irrational
@@ -343,30 +605,72 @@ theorem mul_cases : Irrational (x * y) → Irrational x ∨ Irrational y :=
   exact ⟨rx * ry, cast_mul rx ry⟩
 #align irrational.mul_cases Irrational.mul_cases
 
+/- warning: irrational.of_mul_rat -> Irrational.of_mul_rat is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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))) -> (Irrational x)
+but is expected to have type
+  forall (q : Rat) {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Rat.cast.{0} Real Real.ratCast q))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_mul_rat Irrational.of_mul_ratₓ'. -/
 theorem of_mul_rat (h : Irrational (x * q)) : Irrational x :=
   h.mul_cases.resolve_right q.not_irrational
 #align irrational.of_mul_rat Irrational.of_mul_rat
 
+/- warning: irrational.mul_rat -> Irrational.mul_rat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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 {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Rat.cast.{0} Real Real.ratCast q))))
+Case conversion may be inaccurate. Consider using '#align irrational.mul_rat Irrational.mul_ratₓ'. -/
 theorem mul_rat (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (x * q) :=
   of_mul_rat q⁻¹ <| by rwa [mul_assoc, ← cast_mul, mul_inv_cancel hq, cast_one, mul_one]
 #align irrational.mul_rat Irrational.mul_rat
 
+/- warning: irrational.of_rat_mul -> Irrational.of_rat_mul is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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) x)) -> (Irrational x)
+but is expected to have type
+  forall (q : Rat) {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Rat.cast.{0} Real Real.ratCast q) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_rat_mul Irrational.of_rat_mulₓ'. -/
 theorem of_rat_mul : Irrational (q * x) → Irrational x :=
   mul_comm x q ▸ of_mul_rat q
 #align irrational.of_rat_mul Irrational.of_rat_mul
 
+/- warning: irrational.rat_mul -> Irrational.rat_mul is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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) x)))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Rat.cast.{0} Real Real.ratCast q) x)))
+Case conversion may be inaccurate. Consider using '#align irrational.rat_mul Irrational.rat_mulₓ'. -/
 theorem rat_mul (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (q * x) :=
   mul_comm x q ▸ h.mul_rat hq
 #align irrational.rat_mul Irrational.rat_mul
 
+/- warning: irrational.of_mul_int -> Irrational.of_mul_int is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Int), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Int), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Int.cast.{0} Real Real.intCast m))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_mul_int Irrational.of_mul_intₓ'. -/
 theorem of_mul_int (m : ℤ) (h : Irrational (x * m)) : Irrational x :=
   of_mul_rat m <| by rwa [cast_coe_int]
 #align irrational.of_mul_int Irrational.of_mul_int
 
+/- warning: irrational.of_int_mul -> Irrational.of_int_mul is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Int), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Int), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast m) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_int_mul Irrational.of_int_mulₓ'. -/
 theorem of_int_mul (m : ℤ) (h : Irrational (m * x)) : Irrational x :=
   of_rat_mul m <| by rwa [cast_coe_int]
 #align irrational.of_int_mul Irrational.of_int_mul
 
+/- warning: irrational.mul_int -> Irrational.mul_int is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Int.cast.{0} Real Real.intCast m))))
+Case conversion may be inaccurate. Consider using '#align irrational.mul_int Irrational.mul_intₓ'. -/
 theorem mul_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x * m) :=
   by
   rw [← cast_coe_int]
@@ -374,22 +678,52 @@ theorem mul_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x * m)
   rwa [Int.cast_ne_zero]
 #align irrational.mul_int Irrational.mul_int
 
+/- warning: irrational.int_mul -> Irrational.int_mul is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast m) x)))
+Case conversion may be inaccurate. Consider using '#align irrational.int_mul Irrational.int_mulₓ'. -/
 theorem int_mul (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (m * x) :=
   mul_comm x m ▸ h.mul_int hm
 #align irrational.int_mul Irrational.int_mul
 
+/- warning: irrational.of_mul_nat -> Irrational.of_mul_nat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Nat), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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))) m))) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Nat), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Nat.cast.{0} Real Real.natCast m))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_mul_nat Irrational.of_mul_natₓ'. -/
 theorem of_mul_nat (m : ℕ) (h : Irrational (x * m)) : Irrational x :=
   h.of_mul_int m
 #align irrational.of_mul_nat Irrational.of_mul_nat
 
+/- warning: irrational.of_nat_mul -> Irrational.of_nat_mul is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Nat), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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))) m) x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Nat), (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast m) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_nat_mul Irrational.of_nat_mulₓ'. -/
 theorem of_nat_mul (m : ℕ) (h : Irrational (m * x)) : Irrational x :=
   h.of_int_mul m
 #align irrational.of_nat_mul Irrational.of_nat_mul
 
+/- warning: irrational.mul_nat -> Irrational.mul_nat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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))) m))))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Nat.cast.{0} Real Real.natCast m))))
+Case conversion may be inaccurate. Consider using '#align irrational.mul_nat Irrational.mul_natₓ'. -/
 theorem mul_nat (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (x * m) :=
   h.mul_int <| Int.coe_nat_ne_zero.2 hm
 #align irrational.mul_nat Irrational.mul_nat
 
+/- warning: irrational.nat_mul -> Irrational.nat_mul is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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))) m) x)))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast m) x)))
+Case conversion may be inaccurate. Consider using '#align irrational.nat_mul Irrational.nat_mulₓ'. -/
 theorem nat_mul (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m * x) :=
   h.int_mul <| Int.coe_nat_ne_zero.2 hm
 #align irrational.nat_mul Irrational.nat_mul
@@ -399,9 +733,21 @@ theorem nat_mul (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m * x)
 -/
 
 
+/- warning: irrational.of_inv -> Irrational.of_inv is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational (Inv.inv.{0} Real Real.hasInv x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real}, (Irrational (Inv.inv.{0} Real Real.instInvReal x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_inv Irrational.of_invₓ'. -/
 theorem of_inv (h : Irrational x⁻¹) : Irrational x := fun ⟨q, hq⟩ => h <| hq ▸ ⟨q⁻¹, q.cast_inv⟩
 #align irrational.of_inv Irrational.of_inv
 
+/- warning: irrational.inv -> Irrational.inv is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (Irrational (Inv.inv.{0} Real Real.hasInv x))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (Irrational (Inv.inv.{0} Real Real.instInvReal x))
+Case conversion may be inaccurate. Consider using '#align irrational.inv Irrational.invₓ'. -/
 protected theorem inv (h : Irrational x) : Irrational x⁻¹ :=
   of_inv <| by rwa [inv_inv]
 #align irrational.inv Irrational.inv
@@ -411,40 +757,94 @@ protected theorem inv (h : Irrational x) : Irrational x⁻¹ :=
 -/
 
 
+/- warning: irrational.div_cases -> Irrational.div_cases is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} {y : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x y)) -> (Or (Irrational x) (Irrational y))
+but is expected to have type
+  forall {x : Real} {y : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x y)) -> (Or (Irrational x) (Irrational y))
+Case conversion may be inaccurate. Consider using '#align irrational.div_cases Irrational.div_casesₓ'. -/
 theorem div_cases (h : Irrational (x / y)) : Irrational x ∨ Irrational y :=
   h.mul_cases.imp id of_inv
 #align irrational.div_cases Irrational.div_cases
 
+/- warning: irrational.of_rat_div -> Irrational.of_rat_div is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((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) x)) -> (Irrational x)
+but is expected to have type
+  forall (q : Rat) {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Rat.cast.{0} Real Real.ratCast q) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_rat_div Irrational.of_rat_divₓ'. -/
 theorem of_rat_div (h : Irrational (q / x)) : Irrational x :=
   (h.ofRat_mul q).of_inv
 #align irrational.of_rat_div Irrational.of_rat_div
 
+/- warning: irrational.of_div_rat -> Irrational.of_div_rat is a dubious translation:
+lean 3 declaration is
+  forall (q : Rat) {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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))) -> (Irrational x)
+but is expected to have type
+  forall (q : Rat) {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Rat.cast.{0} Real Real.ratCast q))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_div_rat Irrational.of_div_ratₓ'. -/
 theorem of_div_rat (h : Irrational (x / q)) : Irrational x :=
   h.div_cases.resolve_right q.not_irrational
 #align irrational.of_div_rat Irrational.of_div_rat
 
+/- warning: irrational.rat_div -> Irrational.rat_div is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((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) x)))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Rat.cast.{0} Real Real.ratCast q) x)))
+Case conversion may be inaccurate. Consider using '#align irrational.rat_div Irrational.rat_divₓ'. -/
 theorem rat_div (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (q / x) :=
   h.inv.rat_mul hq
 #align irrational.rat_div Irrational.rat_div
 
+/- warning: irrational.div_rat -> Irrational.div_rat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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 {x : Real}, (Irrational x) -> (forall {q : Rat}, (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Rat.cast.{0} Real Real.ratCast q))))
+Case conversion may be inaccurate. Consider using '#align irrational.div_rat Irrational.div_ratₓ'. -/
 theorem div_rat (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (x / q) :=
   by
   rw [div_eq_mul_inv, ← cast_inv]
   exact h.mul_rat (inv_ne_zero hq)
 #align irrational.div_rat Irrational.div_rat
 
+/- warning: irrational.of_int_div -> Irrational.of_int_div is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Int), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Int), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast m) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_int_div Irrational.of_int_divₓ'. -/
 theorem of_int_div (m : ℤ) (h : Irrational (m / x)) : Irrational x :=
   h.div_cases.resolve_left m.not_irrational
 #align irrational.of_int_div Irrational.of_int_div
 
+/- warning: irrational.of_div_int -> Irrational.of_div_int is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Int), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Int), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Int.cast.{0} Real Real.intCast m))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_div_int Irrational.of_div_intₓ'. -/
 theorem of_div_int (m : ℤ) (h : Irrational (x / m)) : Irrational x :=
   h.div_cases.resolve_right m.not_irrational
 #align irrational.of_div_int Irrational.of_div_int
 
+/- warning: irrational.int_div -> Irrational.int_div is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast m) x)))
+Case conversion may be inaccurate. Consider using '#align irrational.int_div Irrational.int_divₓ'. -/
 theorem int_div (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (m / x) :=
   h.inv.int_mul hm
 #align irrational.int_div Irrational.int_div
 
+/- warning: irrational.div_int -> Irrational.div_int is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall {m : Int}, (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Int.cast.{0} Real Real.intCast m))))
+Case conversion may be inaccurate. Consider using '#align irrational.div_int Irrational.div_intₓ'. -/
 theorem div_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x / m) :=
   by
   rw [← cast_coe_int]
@@ -452,22 +852,52 @@ theorem div_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x / m)
   rwa [Int.cast_ne_zero]
 #align irrational.div_int Irrational.div_int
 
+/- warning: irrational.of_nat_div -> Irrational.of_nat_div is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Nat), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{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))) m) x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Nat), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast m) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_nat_div Irrational.of_nat_divₓ'. -/
 theorem of_nat_div (m : ℕ) (h : Irrational (m / x)) : Irrational x :=
   h.of_int_div m
 #align irrational.of_nat_div Irrational.of_nat_div
 
+/- warning: irrational.of_div_nat -> Irrational.of_div_nat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (m : Nat), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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))) m))) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (m : Nat), (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Nat.cast.{0} Real Real.natCast m))) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_div_nat Irrational.of_div_natₓ'. -/
 theorem of_div_nat (m : ℕ) (h : Irrational (x / m)) : Irrational x :=
   h.of_div_int m
 #align irrational.of_div_nat Irrational.of_div_nat
 
+/- warning: irrational.nat_div -> Irrational.nat_div is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{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))) m) x)))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast m) x)))
+Case conversion may be inaccurate. Consider using '#align irrational.nat_div Irrational.nat_divₓ'. -/
 theorem nat_div (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m / x) :=
   h.inv.nat_mul hm
 #align irrational.nat_div Irrational.nat_div
 
+/- warning: irrational.div_nat -> Irrational.div_nat is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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))) m))))
+but is expected to have type
+  forall {x : Real}, (Irrational x) -> (forall {m : Nat}, (Ne.{1} Nat m (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Nat.cast.{0} Real Real.natCast m))))
+Case conversion may be inaccurate. Consider using '#align irrational.div_nat Irrational.div_natₓ'. -/
 theorem div_nat (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (x / m) :=
   h.div_int <| by rwa [Int.coe_nat_ne_zero]
 #align irrational.div_nat Irrational.div_nat
 
+/- warning: irrational.of_one_div -> Irrational.of_one_div is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real}, (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_one_div Irrational.of_one_divₓ'. -/
 theorem of_one_div (h : Irrational (1 / x)) : Irrational x :=
   of_rat_div 1 <| by rwa [cast_one]
 #align irrational.of_one_div Irrational.of_one_div
@@ -477,10 +907,22 @@ theorem of_one_div (h : Irrational (1 / x)) : Irrational x :=
 -/
 
 
+/- warning: irrational.of_mul_self -> Irrational.of_mul_self is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x x)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real}, (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x x)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_mul_self Irrational.of_mul_selfₓ'. -/
 theorem of_mul_self (h : Irrational (x * x)) : Irrational x :=
   h.mul_cases.elim id id
 #align irrational.of_mul_self Irrational.of_mul_self
 
+/- warning: irrational.of_pow -> Irrational.of_pow is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} (n : Nat), (Irrational (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) x n)) -> (Irrational x)
+but is expected to have type
+  forall {x : Real} (n : Nat), (Irrational (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) x n)) -> (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational.of_pow Irrational.of_powₓ'. -/
 theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
   | 0 => fun h => by
     rw [pow_zero] at h
@@ -490,6 +932,7 @@ theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
     exact h.mul_cases.elim id (of_pow n)
 #align irrational.of_pow Irrational.of_pow
 
+#print Irrational.of_zpow /-
 theorem of_zpow : ∀ m : ℤ, Irrational (x ^ m) → Irrational x
   | (n : ℕ) => fun h => by
     rw [zpow_ofNat] at h
@@ -498,6 +941,7 @@ theorem of_zpow : ∀ m : ℤ, Irrational (x ^ m) → Irrational x
     rw [zpow_negSucc] at h
     exact h.of_inv.of_pow _
 #align irrational.of_zpow Irrational.of_zpow
+-/
 
 end Irrational
 
@@ -509,6 +953,12 @@ open Polynomial
 
 variable (x : ℝ) (p : ℤ[X])
 
+/- warning: one_lt_nat_degree_of_irrational_root -> one_lt_natDegree_of_irrational_root is a dubious translation:
+lean 3 declaration is
+  forall (x : Real) (p : Polynomial.{0} Int Int.semiring), (Irrational x) -> (Ne.{1} (Polynomial.{0} Int Int.semiring) p (OfNat.ofNat.{0} (Polynomial.{0} Int Int.semiring) 0 (OfNat.mk.{0} (Polynomial.{0} Int Int.semiring) 0 (Zero.zero.{0} (Polynomial.{0} Int Int.semiring) (Polynomial.zero.{0} Int Int.semiring))))) -> (Eq.{1} Real (coeFn.{1, 1} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real Int.commSemiring (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.commSemiring (CommSemiring.toSemiring.{0} Int Int.commSemiring) (Algebra.id.{0} Int Int.commSemiring)) (algebraInt.{0} Real Real.ring)) (fun (_x : AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real Int.commSemiring (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.commSemiring (CommSemiring.toSemiring.{0} Int Int.commSemiring) (Algebra.id.{0} Int Int.commSemiring)) (algebraInt.{0} Real Real.ring)) => (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) -> Real) ([anonymous].{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real Int.commSemiring (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.commSemiring)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.commSemiring (CommSemiring.toSemiring.{0} Int Int.commSemiring) (Algebra.id.{0} Int Int.commSemiring)) (algebraInt.{0} Real Real.ring)) (Polynomial.aeval.{0, 0} Int Real Int.commSemiring Real.semiring (algebraInt.{0} Real Real.ring) x) p) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Polynomial.natDegree.{0} Int Int.semiring p))
+but is expected to have type
+  forall (x : Real) (p : Polynomial.{0} Int Int.instSemiringInt), (Irrational x) -> (Ne.{1} (Polynomial.{0} Int Int.instSemiringInt) p (OfNat.ofNat.{0} (Polynomial.{0} Int Int.instSemiringInt) 0 (Zero.toOfNat0.{0} (Polynomial.{0} Int Int.instSemiringInt) (Polynomial.zero.{0} Int Int.instSemiringInt)))) -> (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) (FunLike.coe.{1, 1, 1} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (fun (_x : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) _x) (SMulHomClass.toFunLike.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (SMulZeroClass.toSMul.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddMonoid.toZero.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))))) (DistribSMul.toSMulZeroClass.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddMonoid.toAddZeroClass.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))))) (DistribMulAction.toDistribSMul.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))))) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt))))))) (SMulZeroClass.toSMul.{0, 0} Int Real (AddMonoid.toZero.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))))) (DistribSMul.toSMulZeroClass.{0, 0} Int Real (AddMonoid.toAddZeroClass.{0} Real (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))))) (DistribMulAction.toDistribSMul.{0, 0} Int Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal)))))) (DistribMulActionHomClass.toSMulHomClass.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (AddCommMonoid.toAddMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))))) (AddCommMonoid.toAddMonoid.{0} Real (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)))) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{0, 0, 0, 0} (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real (MonoidWithZero.toMonoid.{0} Int (Semiring.toMonoidWithZero.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring)) (Module.toDistribMulAction.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Semiring.toNonAssocSemiring.{0} (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt))))) (Algebra.toModule.{0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)))) (Module.toDistribMulAction.{0, 0} Int Real (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (NonUnitalNonAssocSemiring.toAddCommMonoid.{0} Real (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Real (Semiring.toNonAssocSemiring.{0} Real Real.semiring))) (Algebra.toModule.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{0, 0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal) (AlgHom.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)) (AlgHom.algHomClass.{0, 0, 0} Int (Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real Int.instCommSemiringInt (Polynomial.semiring.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) Real.semiring (Polynomial.algebraOfAlgebra.{0, 0} Int Int Int.instCommSemiringInt (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt) (Algebra.id.{0} Int Int.instCommSemiringInt)) (algebraInt.{0} Real Real.instRingReal)))))) (Polynomial.aeval.{0, 0} Int Real Int.instCommSemiringInt Real.semiring (algebraInt.{0} Real Real.instRingReal) x) p) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) 0 (Zero.toOfNat0.{0} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{0} Int (CommSemiring.toSemiring.{0} Int Int.instCommSemiringInt)) => Real) p) Real.instZeroReal))) -> (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Polynomial.natDegree.{0} Int Int.instSemiringInt p))
+Case conversion may be inaccurate. Consider using '#align one_lt_nat_degree_of_irrational_root one_lt_natDegree_of_irrational_rootₓ'. -/
 theorem one_lt_natDegree_of_irrational_root (hx : Irrational x) (p_nonzero : p ≠ 0)
     (x_is_root : aeval x p = 0) : 1 < p.natDegree :=
   by
@@ -538,137 +988,299 @@ open Irrational
 -/
 
 
+/- warning: irrational_rat_add_iff -> irrational_rat_add_iff is a dubious translation:
+lean 3 declaration is
+  forall {q : Rat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) x)) (Irrational x)
+but is expected to have type
+  forall {q : Rat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Rat.cast.{0} Real Real.ratCast q) x)) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_rat_add_iff irrational_rat_add_iffₓ'. -/
 @[simp]
 theorem irrational_rat_add_iff : Irrational (q + x) ↔ Irrational x :=
   ⟨of_rat_add q, rat_add q⟩
 #align irrational_rat_add_iff irrational_rat_add_iff
 
+/- warning: irrational_int_add_iff -> irrational_int_add_iff is a dubious translation:
+lean 3 declaration is
+  forall {m : Int} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) (Irrational x)
+but is expected to have type
+  forall {m : Int} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_int_add_iff irrational_int_add_iffₓ'. -/
 @[simp]
 theorem irrational_int_add_iff : Irrational (m + x) ↔ Irrational x :=
   ⟨of_int_add m, fun h => h.int_add m⟩
 #align irrational_int_add_iff irrational_int_add_iff
 
+/- warning: irrational_nat_add_iff -> irrational_nat_add_iff is a dubious translation:
+lean 3 declaration is
+  forall {n : Nat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) n) x)) (Irrational x)
+but is expected to have type
+  forall {n : Nat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_nat_add_iff irrational_nat_add_iffₓ'. -/
 @[simp]
 theorem irrational_nat_add_iff : Irrational (n + x) ↔ Irrational x :=
   ⟨of_nat_add n, fun h => h.natAdd n⟩
 #align irrational_nat_add_iff irrational_nat_add_iff
 
+/- warning: irrational_add_rat_iff -> irrational_add_rat_iff is a dubious translation:
+lean 3 declaration is
+  forall {q : Rat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) (Irrational x)
+but is expected to have type
+  forall {q : Rat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Rat.cast.{0} Real Real.ratCast q))) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_add_rat_iff irrational_add_rat_iffₓ'. -/
 @[simp]
 theorem irrational_add_rat_iff : Irrational (x + q) ↔ Irrational x :=
   ⟨of_add_rat q, add_rat q⟩
 #align irrational_add_rat_iff irrational_add_rat_iff
 
+/- warning: irrational_add_int_iff -> irrational_add_int_iff is a dubious translation:
+lean 3 declaration is
+  forall {m : Int} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) (Irrational x)
+but is expected to have type
+  forall {m : Int} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_add_int_iff irrational_add_int_iffₓ'. -/
 @[simp]
 theorem irrational_add_int_iff : Irrational (x + m) ↔ Irrational x :=
   ⟨of_add_int m, fun h => h.add_int m⟩
 #align irrational_add_int_iff irrational_add_int_iff
 
+/- warning: irrational_add_nat_iff -> irrational_add_nat_iff is a dubious translation:
+lean 3 declaration is
+  forall {n : Nat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) n))) (Irrational x)
+but is expected to have type
+  forall {n : Nat} {x : Real}, Iff (Irrational (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_add_nat_iff irrational_add_nat_iffₓ'. -/
 @[simp]
 theorem irrational_add_nat_iff : Irrational (x + n) ↔ Irrational x :=
   ⟨of_add_nat n, fun h => h.addNat n⟩
 #align irrational_add_nat_iff irrational_add_nat_iff
 
+/- warning: irrational_rat_sub_iff -> irrational_rat_sub_iff is a dubious translation:
+lean 3 declaration is
+  forall {q : Rat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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) x)) (Irrational x)
+but is expected to have type
+  forall {q : Rat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Rat.cast.{0} Real Real.ratCast q) x)) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_rat_sub_iff irrational_rat_sub_iffₓ'. -/
 @[simp]
 theorem irrational_rat_sub_iff : Irrational (q - x) ↔ Irrational x :=
   ⟨of_rat_sub q, rat_sub q⟩
 #align irrational_rat_sub_iff irrational_rat_sub_iff
 
+/- warning: irrational_int_sub_iff -> irrational_int_sub_iff is a dubious translation:
+lean 3 declaration is
+  forall {m : Int} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) (Irrational x)
+but is expected to have type
+  forall {m : Int} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Int.cast.{0} Real Real.intCast m) x)) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_int_sub_iff irrational_int_sub_iffₓ'. -/
 @[simp]
 theorem irrational_int_sub_iff : Irrational (m - x) ↔ Irrational x :=
   ⟨of_int_sub m, fun h => h.int_sub m⟩
 #align irrational_int_sub_iff irrational_int_sub_iff
 
+/- warning: irrational_nat_sub_iff -> irrational_nat_sub_iff is a dubious translation:
+lean 3 declaration is
+  forall {n : Nat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) ((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))) n) x)) (Irrational x)
+but is expected to have type
+  forall {n : Nat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Nat.cast.{0} Real Real.natCast n) x)) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_nat_sub_iff irrational_nat_sub_iffₓ'. -/
 @[simp]
 theorem irrational_nat_sub_iff : Irrational (n - x) ↔ Irrational x :=
   ⟨of_nat_sub n, fun h => h.nat_sub n⟩
 #align irrational_nat_sub_iff irrational_nat_sub_iff
 
+/- warning: irrational_sub_rat_iff -> irrational_sub_rat_iff is a dubious translation:
+lean 3 declaration is
+  forall {q : Rat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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))) (Irrational x)
+but is expected to have type
+  forall {q : Rat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Rat.cast.{0} Real Real.ratCast q))) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_sub_rat_iff irrational_sub_rat_iffₓ'. -/
 @[simp]
 theorem irrational_sub_rat_iff : Irrational (x - q) ↔ Irrational x :=
   ⟨of_sub_rat q, sub_rat q⟩
 #align irrational_sub_rat_iff irrational_sub_rat_iff
 
+/- warning: irrational_sub_int_iff -> irrational_sub_int_iff is a dubious translation:
+lean 3 declaration is
+  forall {m : Int} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) (Irrational x)
+but is expected to have type
+  forall {m : Int} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast m))) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_sub_int_iff irrational_sub_int_iffₓ'. -/
 @[simp]
 theorem irrational_sub_int_iff : Irrational (x - m) ↔ Irrational x :=
   ⟨of_sub_int m, fun h => h.sub_int m⟩
 #align irrational_sub_int_iff irrational_sub_int_iff
 
+/- warning: irrational_sub_nat_iff -> irrational_sub_nat_iff is a dubious translation:
+lean 3 declaration is
+  forall {n : Nat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((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))) n))) (Irrational x)
+but is expected to have type
+  forall {n : Nat} {x : Real}, Iff (Irrational (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_sub_nat_iff irrational_sub_nat_iffₓ'. -/
 @[simp]
 theorem irrational_sub_nat_iff : Irrational (x - n) ↔ Irrational x :=
   ⟨of_sub_nat n, fun h => h.subNat n⟩
 #align irrational_sub_nat_iff irrational_sub_nat_iff
 
+/- warning: irrational_neg_iff -> irrational_neg_iff is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, Iff (Irrational (Neg.neg.{0} Real Real.hasNeg x)) (Irrational x)
+but is expected to have type
+  forall {x : Real}, Iff (Irrational (Neg.neg.{0} Real Real.instNegReal x)) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_neg_iff irrational_neg_iffₓ'. -/
 @[simp]
 theorem irrational_neg_iff : Irrational (-x) ↔ Irrational x :=
   ⟨of_neg, Irrational.neg⟩
 #align irrational_neg_iff irrational_neg_iff
 
+/- warning: irrational_inv_iff -> irrational_inv_iff is a dubious translation:
+lean 3 declaration is
+  forall {x : Real}, Iff (Irrational (Inv.inv.{0} Real Real.hasInv x)) (Irrational x)
+but is expected to have type
+  forall {x : Real}, Iff (Irrational (Inv.inv.{0} Real Real.instInvReal x)) (Irrational x)
+Case conversion may be inaccurate. Consider using '#align irrational_inv_iff irrational_inv_iffₓ'. -/
 @[simp]
 theorem irrational_inv_iff : Irrational x⁻¹ ↔ Irrational x :=
   ⟨of_inv, Irrational.inv⟩
 #align irrational_inv_iff irrational_inv_iff
 
+/- warning: irrational_rat_mul_iff -> irrational_rat_mul_iff is a dubious translation:
+lean 3 declaration is
+  forall {q : Rat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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) x)) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {q : Rat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Rat.cast.{0} Real Real.ratCast q) x)) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_rat_mul_iff irrational_rat_mul_iffₓ'. -/
 @[simp]
 theorem irrational_rat_mul_iff : Irrational (q * x) ↔ q ≠ 0 ∧ Irrational x :=
   ⟨fun h => ⟨Rat.cast_ne_zero.1 <| left_ne_zero_of_mul h.NeZero, h.ofRat_mul q⟩, fun h =>
     h.2.rat_mul h.1⟩
 #align irrational_rat_mul_iff irrational_rat_mul_iff
 
+/- warning: irrational_mul_rat_iff -> irrational_mul_rat_iff is a dubious translation:
+lean 3 declaration is
+  forall {q : Rat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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))) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {q : Rat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Rat.cast.{0} Real Real.ratCast q))) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_mul_rat_iff irrational_mul_rat_iffₓ'. -/
 @[simp]
 theorem irrational_mul_rat_iff : Irrational (x * q) ↔ q ≠ 0 ∧ Irrational x := by
   rw [mul_comm, irrational_rat_mul_iff]
 #align irrational_mul_rat_iff irrational_mul_rat_iff
 
+/- warning: irrational_int_mul_iff -> irrational_int_mul_iff is a dubious translation:
+lean 3 declaration is
+  forall {m : Int} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {m : Int} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast m) x)) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_int_mul_iff irrational_int_mul_iffₓ'. -/
 @[simp]
 theorem irrational_int_mul_iff : Irrational (m * x) ↔ m ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_int, irrational_rat_mul_iff, Int.cast_ne_zero]
 #align irrational_int_mul_iff irrational_int_mul_iff
 
+/- warning: irrational_mul_int_iff -> irrational_mul_int_iff is a dubious translation:
+lean 3 declaration is
+  forall {m : Int} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {m : Int} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Int.cast.{0} Real Real.intCast m))) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_mul_int_iff irrational_mul_int_iffₓ'. -/
 @[simp]
 theorem irrational_mul_int_iff : Irrational (x * m) ↔ m ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_int, irrational_mul_rat_iff, Int.cast_ne_zero]
 #align irrational_mul_int_iff irrational_mul_int_iff
 
+/- warning: irrational_nat_mul_iff -> irrational_nat_mul_iff is a dubious translation:
+lean 3 declaration is
+  forall {n : Nat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((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))) n) x)) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {n : Nat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) x)) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_nat_mul_iff irrational_nat_mul_iffₓ'. -/
 @[simp]
 theorem irrational_nat_mul_iff : Irrational (n * x) ↔ n ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_nat, irrational_rat_mul_iff, Nat.cast_ne_zero]
 #align irrational_nat_mul_iff irrational_nat_mul_iff
 
+/- warning: irrational_mul_nat_iff -> irrational_mul_nat_iff is a dubious translation:
+lean 3 declaration is
+  forall {n : Nat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) x ((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))) n))) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {n : Nat} {x : Real}, Iff (Irrational (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) x (Nat.cast.{0} Real Real.natCast n))) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_mul_nat_iff irrational_mul_nat_iffₓ'. -/
 @[simp]
 theorem irrational_mul_nat_iff : Irrational (x * n) ↔ n ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_nat, irrational_mul_rat_iff, Nat.cast_ne_zero]
 #align irrational_mul_nat_iff irrational_mul_nat_iff
 
+/- warning: irrational_rat_div_iff -> irrational_rat_div_iff is a dubious translation:
+lean 3 declaration is
+  forall {q : Rat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((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) x)) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {q : Rat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Rat.cast.{0} Real Real.ratCast q) x)) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_rat_div_iff irrational_rat_div_iffₓ'. -/
 @[simp]
 theorem irrational_rat_div_iff : Irrational (q / x) ↔ q ≠ 0 ∧ Irrational x := by
   simp [div_eq_mul_inv]
 #align irrational_rat_div_iff irrational_rat_div_iff
 
+/- warning: irrational_div_rat_iff -> irrational_div_rat_iff is a dubious translation:
+lean 3 declaration is
+  forall {q : Rat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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))) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (OfNat.mk.{0} Rat 0 (Zero.zero.{0} Rat Rat.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {q : Rat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Rat.cast.{0} Real Real.ratCast q))) (And (Ne.{1} Rat q (OfNat.ofNat.{0} Rat 0 (Rat.instOfNatRat 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_div_rat_iff irrational_div_rat_iffₓ'. -/
 @[simp]
 theorem irrational_div_rat_iff : Irrational (x / q) ↔ q ≠ 0 ∧ Irrational x := by
   rw [div_eq_mul_inv, ← cast_inv, irrational_mul_rat_iff, Ne.def, inv_eq_zero]
 #align irrational_div_rat_iff irrational_div_rat_iff
 
+/- warning: irrational_int_div_iff -> irrational_int_div_iff is a dubious translation:
+lean 3 declaration is
+  forall {m : Int} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m) x)) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {m : Int} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast m) x)) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_int_div_iff irrational_int_div_iffₓ'. -/
 @[simp]
 theorem irrational_int_div_iff : Irrational (m / x) ↔ m ≠ 0 ∧ Irrational x := by
   simp [div_eq_mul_inv]
 #align irrational_int_div_iff irrational_int_div_iff
 
+/- warning: irrational_div_int_iff -> irrational_div_int_iff is a dubious translation:
+lean 3 declaration is
+  forall {m : Int} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) m))) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {m : Int} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Int.cast.{0} Real Real.intCast m))) (And (Ne.{1} Int m (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_div_int_iff irrational_div_int_iffₓ'. -/
 @[simp]
 theorem irrational_div_int_iff : Irrational (x / m) ↔ m ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_int, irrational_div_rat_iff, Int.cast_ne_zero]
 #align irrational_div_int_iff irrational_div_int_iff
 
+/- warning: irrational_nat_div_iff -> irrational_nat_div_iff is a dubious translation:
+lean 3 declaration is
+  forall {n : Nat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{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))) n) x)) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {n : Nat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast n) x)) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_nat_div_iff irrational_nat_div_iffₓ'. -/
 @[simp]
 theorem irrational_nat_div_iff : Irrational (n / x) ↔ n ≠ 0 ∧ Irrational x := by
   simp [div_eq_mul_inv]
 #align irrational_nat_div_iff irrational_nat_div_iff
 
+/- warning: irrational_div_nat_iff -> irrational_div_nat_iff is a dubious translation:
+lean 3 declaration is
+  forall {n : Nat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) x ((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))) n))) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Irrational x))
+but is expected to have type
+  forall {n : Nat} {x : Real}, Iff (Irrational (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) x (Nat.cast.{0} Real Real.natCast n))) (And (Ne.{1} Nat n (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Irrational x))
+Case conversion may be inaccurate. Consider using '#align irrational_div_nat_iff irrational_div_nat_iffₓ'. -/
 @[simp]
 theorem irrational_div_nat_iff : Irrational (x / n) ↔ n ≠ 0 ∧ Irrational x := by
   rw [← cast_coe_nat, irrational_div_rat_iff, Nat.cast_ne_zero]
 #align irrational_div_nat_iff irrational_div_nat_iff
 
+/- warning: exists_irrational_btwn -> exists_irrational_btwn is a dubious translation:
+lean 3 declaration is
+  forall {x : Real} {y : Real}, (LT.lt.{0} Real Real.hasLt x y) -> (Exists.{1} Real (fun (r : Real) => And (Irrational r) (And (LT.lt.{0} Real Real.hasLt x r) (LT.lt.{0} Real Real.hasLt r y))))
+but is expected to have type
+  forall {x : Real} {y : Real}, (LT.lt.{0} Real Real.instLTReal x y) -> (Exists.{1} Real (fun (r : Real) => And (Irrational r) (And (LT.lt.{0} Real Real.instLTReal x r) (LT.lt.{0} Real Real.instLTReal r y))))
+Case conversion may be inaccurate. Consider using '#align exists_irrational_btwn exists_irrational_btwnₓ'. -/
 /-- There is an irrational number `r` between any two reals `x < r < y`. -/
 theorem exists_irrational_btwn {x y : ℝ} (h : x < y) : ∃ r, Irrational r ∧ x < r ∧ r < y :=
   let ⟨q, ⟨hq1, hq2⟩⟩ := exists_rat_btwn ((sub_lt_sub_iff_right (Real.sqrt 2)).mpr h)

Changes in mathlib4

mathlib3
mathlib4
Feat: add fermatLastTheoremThree_of_three_dvd_only_c (#11767)

We add fermatLastTheoremThree_of_three_dvd_only_c: To prove FermatLastTheoremFor 3, we may assume that ¬ 3 ∣ a, ¬ 3 ∣ b, a and b are coprime and 3 ∣ c.

From the flt3 project in LFTCM2024.

Co-authored-by: Pietro Monticone <38562595+pitmonticone@users.noreply.github.com>

Diff
@@ -59,7 +59,7 @@ theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n
     ← Int.cast_pow, ← Int.cast_mul, Int.cast_inj] at hxr
   have hdivn : (D : ℤ) ^ n ∣ N ^ n := Dvd.intro_left m hxr
   rw [← Int.dvd_natAbs, ← Int.coe_nat_pow, Int.natCast_dvd_natCast, Int.natAbs_pow,
-    Nat.pow_dvd_pow_iff hnpos] at hdivn
+    Nat.pow_dvd_pow_iff hnpos.ne'] at hdivn
   obtain rfl : D = 1 := by rw [← Nat.gcd_eq_right hdivn, C.gcd_eq_one]
   refine' hv ⟨N, _⟩
   rw [mk'_eq_divInt, Int.ofNat_one, divInt_one, cast_intCast]
refactor(Rat): Streamline basic theory (#11504)

Rat has a long history in (and before) mathlib and as such its development is full of cruft. Now that NNRat is a thing, there is a need for the theory of Rat to be mimickable to yield the theory of NNRat, which is not currently the case.

Broadly, this PR aims at mirroring the Rat and NNRat declarations. It achieves this by:

  • Relying more on Rat.num and Rat.den, and less on the structure representation of Rat
  • Abandoning the vestigial Rat.Nonneg (which was replaced in Std by a new development of the order on Rat)
  • Renaming many Rat lemmas with dubious names. This creates quite a lot of conflicts with Std lemmas, whose names are themselves dubious. I am priming the relevant new mathlib names and leaving TODOs to fix the Std names.
  • Handling most of the Rat porting notes

Reduce the diff of #11203

Diff
@@ -55,14 +55,14 @@ theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n
     rw [Int.cast_ne_zero, Int.natCast_ne_zero]
     exact P
   have c2 : ((D : ℤ) : ℝ) ^ n ≠ 0 := pow_ne_zero _ c1
-  rw [num_den', cast_pow, cast_mk, div_pow, div_eq_iff_mul_eq c2, ← Int.cast_pow, ← Int.cast_pow,
-    ← Int.cast_mul, Int.cast_inj] at hxr
+  rw [mk'_eq_divInt, cast_pow, cast_mk, div_pow, div_eq_iff_mul_eq c2, ← Int.cast_pow,
+    ← Int.cast_pow, ← Int.cast_mul, Int.cast_inj] at hxr
   have hdivn : (D : ℤ) ^ n ∣ N ^ n := Dvd.intro_left m hxr
   rw [← Int.dvd_natAbs, ← Int.coe_nat_pow, Int.natCast_dvd_natCast, Int.natAbs_pow,
     Nat.pow_dvd_pow_iff hnpos] at hdivn
   obtain rfl : D = 1 := by rw [← Nat.gcd_eq_right hdivn, C.gcd_eq_one]
   refine' hv ⟨N, _⟩
-  rw [num_den', Int.ofNat_one, divInt_one, cast_intCast]
+  rw [mk'_eq_divInt, Int.ofNat_one, divInt_one, cast_intCast]
 #align irrational_nrt_of_notint_nrt irrational_nrt_of_notint_nrt
 
 /-- If `x^n = m` is an integer and `n` does not divide the `multiplicity p m`, then `x`
feat: add notation for Real.sqrt (#12056)

This adds the notation √r for Real.sqrt r. The precedence is such that √x⁻¹ is parsed as √(x⁻¹); not because this is particularly desirable, but because it's the default and the choice doesn't really matter.

This is extracted from #7907, which adds a more general nth root typeclass. The idea is to perform all the boring substitutions downstream quickly, so that we can play around with custom elaborators with a much slower rate of code-rot. This PR also won't rot as quickly, as it does not forbid writing x.sqrt as that PR does.

While perhaps claiming for Real.sqrt is greedy; it:

  • Is far more common thatn NNReal.sqrt and Nat.sqrt
  • Is far more interesting to mathlib than sqrt on Float
  • Can be overloaded anyway, so this does not prevent downstream code using the notation on their own types.
  • Will be replaced by a more general typeclass in a future PR.

Zulip

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

Diff
@@ -88,24 +88,24 @@ theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (
 theorem irrational_sqrt_of_multiplicity_odd (m : ℤ) (hm : 0 < m) (p : ℕ) [hp : Fact p.Prime]
     (Hpv :
       (multiplicity (p : ℤ) m).get (finite_int_iff.2 ⟨hp.1.ne_one, (ne_of_lt hm).symm⟩) % 2 = 1) :
-    Irrational (Real.sqrt m) :=
+    Irrational (√m) :=
   @irrational_nrt_of_n_not_dvd_multiplicity _ 2 _ (Ne.symm (ne_of_lt hm)) p hp
     (sq_sqrt (Int.cast_nonneg.2 <| le_of_lt hm)) (by rw [Hpv]; exact one_ne_zero)
 #align irrational_sqrt_of_multiplicity_odd irrational_sqrt_of_multiplicity_odd
 
-theorem Nat.Prime.irrational_sqrt {p : ℕ} (hp : Nat.Prime p) : Irrational (Real.sqrt p) :=
+theorem Nat.Prime.irrational_sqrt {p : ℕ} (hp : Nat.Prime p) : Irrational (√p) :=
   @irrational_sqrt_of_multiplicity_odd p (Int.natCast_pos.2 hp.pos) p ⟨hp⟩ <| by
     simp [multiplicity.multiplicity_self
       (mt isUnit_iff_dvd_one.1 (mt Int.natCast_dvd_natCast.1 hp.not_dvd_one))]
 #align nat.prime.irrational_sqrt Nat.Prime.irrational_sqrt
 
 /-- **Irrationality of the Square Root of 2** -/
-theorem irrational_sqrt_two : Irrational (Real.sqrt 2) := by
+theorem irrational_sqrt_two : Irrational (√2) := by
   simpa using Nat.prime_two.irrational_sqrt
 #align irrational_sqrt_two irrational_sqrt_two
 
 theorem irrational_sqrt_rat_iff (q : ℚ) :
-    Irrational (Real.sqrt q) ↔ Rat.sqrt q * Rat.sqrt q ≠ q ∧ 0 ≤ q :=
+    Irrational (√q) ↔ Rat.sqrt q * Rat.sqrt q ≠ q ∧ 0 ≤ q :=
   if H1 : Rat.sqrt q * Rat.sqrt q = q then
     iff_of_false
       (not_not_intro
@@ -134,7 +134,7 @@ theorem irrational_sqrt_rat_iff (q : ℚ) :
         fun h => H2 h.2
 #align irrational_sqrt_rat_iff irrational_sqrt_rat_iff
 
-instance (q : ℚ) : Decidable (Irrational (Real.sqrt q)) :=
+instance (q : ℚ) : Decidable (Irrational (√q)) :=
   decidable_of_iff' _ (irrational_sqrt_rat_iff q)
 
 /-!
@@ -654,9 +654,8 @@ theorem irrational_div_nat_iff : Irrational (x / n) ↔ n ≠ 0 ∧ Irrational x
 
 /-- There is an irrational number `r` between any two reals `x < r < y`. -/
 theorem exists_irrational_btwn {x y : ℝ} (h : x < y) : ∃ r, Irrational r ∧ x < r ∧ r < y :=
-  let ⟨q, ⟨hq1, hq2⟩⟩ := exists_rat_btwn ((sub_lt_sub_iff_right (Real.sqrt 2)).mpr h)
-  ⟨q + Real.sqrt 2, irrational_sqrt_two.rat_add _, sub_lt_iff_lt_add.mp hq1,
-    lt_sub_iff_add_lt.mp hq2⟩
+  let ⟨q, ⟨hq1, hq2⟩⟩ := exists_rat_btwn ((sub_lt_sub_iff_right (√2)).mpr h)
+  ⟨q + √2, irrational_sqrt_two.rat_add _, sub_lt_iff_lt_add.mp hq1, lt_sub_iff_add_lt.mp hq2⟩
 #align exists_irrational_btwn exists_irrational_btwn
 
 end
chore: Rename coe_nat/coe_int/coe_rat to natCast/intCast/ratCast (#11499)

This is less exhaustive than its sibling #11486 because edge cases are harder to classify. No fundamental difficulty, just me being a bit fast and lazy.

Reduce the diff of #11203

Diff
@@ -94,7 +94,7 @@ theorem irrational_sqrt_of_multiplicity_odd (m : ℤ) (hm : 0 < m) (p : ℕ) [hp
 #align irrational_sqrt_of_multiplicity_odd irrational_sqrt_of_multiplicity_odd
 
 theorem Nat.Prime.irrational_sqrt {p : ℕ} (hp : Nat.Prime p) : Irrational (Real.sqrt p) :=
-  @irrational_sqrt_of_multiplicity_odd p (Int.coe_nat_pos.2 hp.pos) p ⟨hp⟩ <| by
+  @irrational_sqrt_of_multiplicity_odd p (Int.natCast_pos.2 hp.pos) p ⟨hp⟩ <| by
     simp [multiplicity.multiplicity_self
       (mt isUnit_iff_dvd_one.1 (mt Int.natCast_dvd_natCast.1 hp.not_dvd_one))]
 #align nat.prime.irrational_sqrt Nat.Prime.irrational_sqrt
chore(Data/Int): Rename coe_nat to natCast (#11637)

Reduce the diff of #11499

Renames

All in the Int namespace:

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

Also rename Nat.coe_nat_dvd to Nat.cast_dvd_cast

Diff
@@ -52,13 +52,13 @@ theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n
   rintro ⟨⟨N, D, P, C⟩, rfl⟩
   rw [← cast_pow] at hxr
   have c1 : ((D : ℤ) : ℝ) ≠ 0 := by
-    rw [Int.cast_ne_zero, Int.coe_nat_ne_zero]
+    rw [Int.cast_ne_zero, Int.natCast_ne_zero]
     exact P
   have c2 : ((D : ℤ) : ℝ) ^ n ≠ 0 := pow_ne_zero _ c1
   rw [num_den', cast_pow, cast_mk, div_pow, div_eq_iff_mul_eq c2, ← Int.cast_pow, ← Int.cast_pow,
     ← Int.cast_mul, Int.cast_inj] at hxr
   have hdivn : (D : ℤ) ^ n ∣ N ^ n := Dvd.intro_left m hxr
-  rw [← Int.dvd_natAbs, ← Int.coe_nat_pow, Int.coe_nat_dvd, Int.natAbs_pow,
+  rw [← Int.dvd_natAbs, ← Int.coe_nat_pow, Int.natCast_dvd_natCast, Int.natAbs_pow,
     Nat.pow_dvd_pow_iff hnpos] at hdivn
   obtain rfl : D = 1 := by rw [← Nat.gcd_eq_right hdivn, C.gcd_eq_one]
   refine' hv ⟨N, _⟩
@@ -73,9 +73,8 @@ theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (
     Irrational x := by
   rcases Nat.eq_zero_or_pos n with (rfl | hnpos)
   · rw [eq_comm, pow_zero, ← Int.cast_one, Int.cast_inj] at hxr
-    simp [hxr,
-      multiplicity.one_right (mt isUnit_iff_dvd_one.1 (mt Int.coe_nat_dvd.1 hp.1.not_dvd_one)),
-      Nat.zero_mod] at hv
+    simp [hxr, multiplicity.one_right (mt isUnit_iff_dvd_one.1
+      (mt Int.natCast_dvd_natCast.1 hp.1.not_dvd_one)), Nat.zero_mod] at hv
   refine' irrational_nrt_of_notint_nrt _ _ hxr _ hnpos
   rintro ⟨y, rfl⟩
   rw [← Int.cast_pow, Int.cast_inj] at hxr
@@ -97,7 +96,7 @@ theorem irrational_sqrt_of_multiplicity_odd (m : ℤ) (hm : 0 < m) (p : ℕ) [hp
 theorem Nat.Prime.irrational_sqrt {p : ℕ} (hp : Nat.Prime p) : Irrational (Real.sqrt p) :=
   @irrational_sqrt_of_multiplicity_odd p (Int.coe_nat_pos.2 hp.pos) p ⟨hp⟩ <| by
     simp [multiplicity.multiplicity_self
-      (mt isUnit_iff_dvd_one.1 (mt Int.coe_nat_dvd.1 hp.not_dvd_one))]
+      (mt isUnit_iff_dvd_one.1 (mt Int.natCast_dvd_natCast.1 hp.not_dvd_one))]
 #align nat.prime.irrational_sqrt Nat.Prime.irrational_sqrt
 
 /-- **Irrationality of the Square Root of 2** -/
@@ -373,11 +372,11 @@ theorem of_nat_mul (m : ℕ) (h : Irrational (m * x)) : Irrational x :=
 #align irrational.of_nat_mul Irrational.of_nat_mul
 
 theorem mul_nat (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (x * m) :=
-  h.mul_int <| Int.coe_nat_ne_zero.2 hm
+  h.mul_int <| Int.natCast_ne_zero.2 hm
 #align irrational.mul_nat Irrational.mul_nat
 
 theorem nat_mul (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m * x) :=
-  h.int_mul <| Int.coe_nat_ne_zero.2 hm
+  h.int_mul <| Int.natCast_ne_zero.2 hm
 #align irrational.nat_mul Irrational.nat_mul
 
 /-!
@@ -449,7 +448,7 @@ theorem nat_div (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (m / x)
 #align irrational.nat_div Irrational.nat_div
 
 theorem div_nat (h : Irrational x) {m : ℕ} (hm : m ≠ 0) : Irrational (x / m) :=
-  h.div_int <| by rwa [Int.coe_nat_ne_zero]
+  h.div_int <| by rwa [Int.natCast_ne_zero]
 #align irrational.div_nat Irrational.div_nat
 
 theorem of_one_div (h : Irrational (1 / x)) : Irrational x :=
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -630,7 +630,7 @@ theorem irrational_rat_div_iff : Irrational (q / x) ↔ q ≠ 0 ∧ Irrational x
 
 @[simp]
 theorem irrational_div_rat_iff : Irrational (x / q) ↔ q ≠ 0 ∧ Irrational x := by
-  rw [div_eq_mul_inv, ← cast_inv, irrational_mul_rat_iff, Ne.def, inv_eq_zero]
+  rw [div_eq_mul_inv, ← cast_inv, irrational_mul_rat_iff, Ne, inv_eq_zero]
 #align irrational_div_rat_iff irrational_div_rat_iff
 
 @[simp]
change the order of operation in zsmulRec and nsmulRec (#11451)

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

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

where the latter is more natural

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

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

but it seems to no longer apply.

Remarks on the PR :

  • pow_succ and pow_succ' have switched their meanings.
  • Most of the time, the proofs were adjusted by priming/unpriming one lemma, or exchanging left and right; a few proofs were more complicated to adjust.
  • In particular, [Mathlib/NumberTheory/RamificationInertia.lean] used Ideal.IsPrime.mul_mem_pow which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul.
  • the docstring for Cauchy condensation test in [Mathlib/Analysis/PSeries.lean] was mathematically incorrect, I added the mention that the function is antitone.
Diff
@@ -471,7 +471,7 @@ theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
     exact (h ⟨1, cast_one⟩).elim
   | n + 1 => fun h => by
     rw [pow_succ] at h
-    exact h.mul_cases.elim id (of_pow n)
+    exact h.mul_cases.elim (of_pow n) id
 #align irrational.of_pow Irrational.of_pow
 
 open Int in
chore: Rename cat_coe_nat/cast_coe_int to cast_natCast/cast_intCast (#11552)

Reduce the diff of #11499

Diff
@@ -30,7 +30,7 @@ def Irrational (x : ℝ) :=
 #align irrational Irrational
 
 theorem irrational_iff_ne_rational (x : ℝ) : Irrational x ↔ ∀ a b : ℤ, x ≠ a / b := by
-  simp only [Irrational, Rat.forall, cast_mk, not_exists, Set.mem_range, cast_coe_int, cast_div,
+  simp only [Irrational, Rat.forall, cast_mk, not_exists, Set.mem_range, cast_intCast, cast_div,
     eq_comm]
 #align irrational_iff_ne_rational irrational_iff_ne_rational
 
@@ -62,7 +62,7 @@ theorem irrational_nrt_of_notint_nrt {x : ℝ} (n : ℕ) (m : ℤ) (hxr : x ^ n
     Nat.pow_dvd_pow_iff hnpos] at hdivn
   obtain rfl : D = 1 := by rw [← Nat.gcd_eq_right hdivn, C.gcd_eq_one]
   refine' hv ⟨N, _⟩
-  rw [num_den', Int.ofNat_one, divInt_one, cast_coe_int]
+  rw [num_den', Int.ofNat_one, divInt_one, cast_intCast]
 #align irrational_nrt_of_notint_nrt irrational_nrt_of_notint_nrt
 
 /-- If `x^n = m` is an integer and `n` does not divide the `multiplicity p m`, then `x`
@@ -158,7 +158,7 @@ theorem ne_rat (h : Irrational x) (q : ℚ) : x ≠ q := fun hq => h ⟨q, hq.sy
 #align irrational.ne_rat Irrational.ne_rat
 
 theorem ne_int (h : Irrational x) (m : ℤ) : x ≠ m := by
-  rw [← Rat.cast_coe_int]
+  rw [← Rat.cast_intCast]
   exact h.ne_rat _
 #align irrational.ne_int Irrational.ne_int
 
@@ -220,7 +220,7 @@ theorem add_rat (h : Irrational x) : Irrational (x + q) :=
 #align irrational.add_rat Irrational.add_rat
 
 theorem of_int_add (m : ℤ) (h : Irrational (m + x)) : Irrational x := by
-  rw [← cast_coe_int] at h
+  rw [← cast_intCast] at h
   exact h.of_rat_add m
 #align irrational.of_int_add Irrational.of_int_add
 
@@ -229,7 +229,7 @@ theorem of_add_int (m : ℤ) (h : Irrational (x + m)) : Irrational x :=
 #align irrational.of_add_int Irrational.of_add_int
 
 theorem int_add (h : Irrational x) (m : ℤ) : Irrational (m + x) := by
-  rw [← cast_coe_int]
+  rw [← cast_intCast]
   exact h.rat_add m
 #align irrational.int_add Irrational.int_add
 
@@ -287,19 +287,19 @@ theorem of_rat_sub (h : Irrational (q - x)) : Irrational x :=
 #align irrational.of_rat_sub Irrational.of_rat_sub
 
 theorem sub_int (h : Irrational x) (m : ℤ) : Irrational (x - m) := by
-  simpa only [Rat.cast_coe_int] using h.sub_rat m
+  simpa only [Rat.cast_intCast] using h.sub_rat m
 #align irrational.sub_int Irrational.sub_int
 
 theorem int_sub (h : Irrational x) (m : ℤ) : Irrational (m - x) := by
-  simpa only [Rat.cast_coe_int] using h.rat_sub m
+  simpa only [Rat.cast_intCast] using h.rat_sub m
 #align irrational.int_sub Irrational.int_sub
 
 theorem of_sub_int (m : ℤ) (h : Irrational (x - m)) : Irrational x :=
-  of_sub_rat m <| by rwa [Rat.cast_coe_int]
+  of_sub_rat m <| by rwa [Rat.cast_intCast]
 #align irrational.of_sub_int Irrational.of_sub_int
 
 theorem of_int_sub (m : ℤ) (h : Irrational (m - x)) : Irrational x :=
-  of_rat_sub m <| by rwa [Rat.cast_coe_int]
+  of_rat_sub m <| by rwa [Rat.cast_intCast]
 #align irrational.of_int_sub Irrational.of_int_sub
 
 theorem sub_nat (h : Irrational x) (m : ℕ) : Irrational (x - m) :=
@@ -347,15 +347,15 @@ theorem rat_mul (h : Irrational x) {q : ℚ} (hq : q ≠ 0) : Irrational (q * x)
 #align irrational.rat_mul Irrational.rat_mul
 
 theorem of_mul_int (m : ℤ) (h : Irrational (x * m)) : Irrational x :=
-  of_mul_rat m <| by rwa [cast_coe_int]
+  of_mul_rat m <| by rwa [cast_intCast]
 #align irrational.of_mul_int Irrational.of_mul_int
 
 theorem of_int_mul (m : ℤ) (h : Irrational (m * x)) : Irrational x :=
-  of_rat_mul m <| by rwa [cast_coe_int]
+  of_rat_mul m <| by rwa [cast_intCast]
 #align irrational.of_int_mul Irrational.of_int_mul
 
 theorem mul_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x * m) := by
-  rw [← cast_coe_int]
+  rw [← cast_intCast]
   refine' h.mul_rat _
   rwa [Int.cast_ne_zero]
 #align irrational.mul_int Irrational.mul_int
@@ -431,7 +431,7 @@ theorem int_div (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (m / x)
 #align irrational.int_div Irrational.int_div
 
 theorem div_int (h : Irrational x) {m : ℤ} (hm : m ≠ 0) : Irrational (x / m) := by
-  rw [← cast_coe_int]
+  rw [← cast_intCast]
   refine' h.div_rat _
   rwa [Int.cast_ne_zero]
 #align irrational.div_int Irrational.div_int
@@ -605,22 +605,22 @@ theorem irrational_mul_rat_iff : Irrational (x * q) ↔ q ≠ 0 ∧ Irrational x
 
 @[simp]
 theorem irrational_int_mul_iff : Irrational (m * x) ↔ m ≠ 0 ∧ Irrational x := by
-  rw [← cast_coe_int, irrational_rat_mul_iff, Int.cast_ne_zero]
+  rw [← cast_intCast, irrational_rat_mul_iff, Int.cast_ne_zero]
 #align irrational_int_mul_iff irrational_int_mul_iff
 
 @[simp]
 theorem irrational_mul_int_iff : Irrational (x * m) ↔ m ≠ 0 ∧ Irrational x := by
-  rw [← cast_coe_int, irrational_mul_rat_iff, Int.cast_ne_zero]
+  rw [← cast_intCast, irrational_mul_rat_iff, Int.cast_ne_zero]
 #align irrational_mul_int_iff irrational_mul_int_iff
 
 @[simp]
 theorem irrational_nat_mul_iff : Irrational (n * x) ↔ n ≠ 0 ∧ Irrational x := by
-  rw [← cast_coe_nat, irrational_rat_mul_iff, Nat.cast_ne_zero]
+  rw [← cast_natCast, irrational_rat_mul_iff, Nat.cast_ne_zero]
 #align irrational_nat_mul_iff irrational_nat_mul_iff
 
 @[simp]
 theorem irrational_mul_nat_iff : Irrational (x * n) ↔ n ≠ 0 ∧ Irrational x := by
-  rw [← cast_coe_nat, irrational_mul_rat_iff, Nat.cast_ne_zero]
+  rw [← cast_natCast, irrational_mul_rat_iff, Nat.cast_ne_zero]
 #align irrational_mul_nat_iff irrational_mul_nat_iff
 
 @[simp]
@@ -640,7 +640,7 @@ theorem irrational_int_div_iff : Irrational (m / x) ↔ m ≠ 0 ∧ Irrational x
 
 @[simp]
 theorem irrational_div_int_iff : Irrational (x / m) ↔ m ≠ 0 ∧ Irrational x := by
-  rw [← cast_coe_int, irrational_div_rat_iff, Int.cast_ne_zero]
+  rw [← cast_intCast, irrational_div_rat_iff, Int.cast_ne_zero]
 #align irrational_div_int_iff irrational_div_int_iff
 
 @[simp]
@@ -650,7 +650,7 @@ theorem irrational_nat_div_iff : Irrational (n / x) ↔ n ≠ 0 ∧ Irrational x
 
 @[simp]
 theorem irrational_div_nat_iff : Irrational (x / n) ↔ n ≠ 0 ∧ Irrational x := by
-  rw [← cast_coe_nat, irrational_div_rat_iff, Nat.cast_ne_zero]
+  rw [← cast_natCast, irrational_div_rat_iff, Nat.cast_ne_zero]
 #align irrational_div_nat_iff irrational_div_nat_iff
 
 /-- There is an irrational number `r` between any two reals `x < r < y`. -/
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
@@ -477,7 +477,7 @@ theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
 open Int in
 theorem of_zpow : ∀ m : ℤ, Irrational (x ^ m) → Irrational x
   | (n : ℕ) => fun h => by
-    rw [zpow_coe_nat] at h
+    rw [zpow_natCast] at h
     exact h.of_pow _
   | -[n+1] => fun h => by
     rw [zpow_negSucc] at h
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
@@ -477,7 +477,7 @@ theorem of_pow : ∀ n : ℕ, Irrational (x ^ n) → Irrational x
 open Int in
 theorem of_zpow : ∀ m : ℤ, Irrational (x ^ m) → Irrational x
   | (n : ℕ) => fun h => by
-    rw [zpow_ofNat] at h
+    rw [zpow_coe_nat] at h
     exact h.of_pow _
   | -[n+1] => fun h => by
     rw [zpow_negSucc] at h
feat: The support of f ^ n (#9617)

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

From LeanAPAP

Diff
@@ -80,10 +80,7 @@ theorem irrational_nrt_of_n_not_dvd_multiplicity {x : ℝ} (n : ℕ) {m : ℤ} (
   rintro ⟨y, rfl⟩
   rw [← Int.cast_pow, Int.cast_inj] at hxr
   subst m
-  have : y ≠ 0 := by
-    rintro rfl
-    rw [zero_pow hnpos] at hm
-    exact hm rfl
+  have : y ≠ 0 := by rintro rfl; rw [zero_pow hnpos.ne'] at hm; exact hm rfl
   erw [multiplicity.pow' (Nat.prime_iff_prime_int.1 hp.1) (finite_int_iff.2 ⟨hp.1.ne_one, this⟩),
     Nat.mul_mod_right] at hv
   exact hv rfl
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
@@ -169,7 +169,7 @@ theorem ne_nat (h : Irrational x) (m : ℕ) : x ≠ m :=
   h.ne_int m
 #align irrational.ne_nat Irrational.ne_nat
 
-theorem ne_zero (h : Irrational x) : x ≠ 0 := by exact_mod_cast h.ne_nat 0
+theorem ne_zero (h : Irrational x) : x ≠ 0 := mod_cast h.ne_nat 0
 #align irrational.ne_zero Irrational.ne_zero
 
 theorem ne_one (h : Irrational x) : x ≠ 1 := by simpa only [Nat.cast_one] using h.ne_nat 1
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2018 Mario Carneiro. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro, Abhimanyu Pallavi Sudhir, Jean Lo, Calle Sönne, Yury Kudryashov
-
-! This file was ported from Lean 3 source module data.real.irrational
-! leanprover-community/mathlib commit 7e7aaccf9b0182576cabdde36cf1b5ad3585b70d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Rat.Sqrt
 import Mathlib.Data.Real.Sqrt
@@ -14,6 +9,8 @@ import Mathlib.RingTheory.Algebraic
 import Mathlib.RingTheory.Int.Basic
 import Mathlib.Tactic.IntervalCases
 
+#align_import data.real.irrational from "leanprover-community/mathlib"@"7e7aaccf9b0182576cabdde36cf1b5ad3585b70d"
+
 /-!
 # Irrational real numbers
 
chore: fix many typos (#4967)

These are all doc fixes

Diff
@@ -463,7 +463,7 @@ theorem of_one_div (h : Irrational (1 / x)) : Irrational x :=
 #align irrational.of_one_div Irrational.of_one_div
 
 /-!
-#### Natural and integerl power
+#### Natural and integer power
 -/
 
 
feat: port Data.Real.Irrational (#4234)

Dependencies 12 + 749

750 files ported (98.4%)
325837 lines ported (98.3%)
Show graph

The unported dependencies are

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