Theorem: Real.exists_rat_pow_btwn_rat_aux
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

Proof steps:
state_before: z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
state_after: z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
tactic: have hn' : 0 < (n : ℝ) := mod_cast hn.bot_lt
state_before: z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
state_after: case intro.intro
z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
hxq : max 0 x ^ (↑n)⁻¹ < ↑q
hqy : ↑q < y ^ (↑n)⁻¹
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
tactic: obtain ⟨q, hxq, hqy⟩ :=
    exists_rat_btwn (rpow_lt_rpow (le_max_left 0 x) (max_lt hy h) <| inv_pos.mpr hn')
state_before: case intro.intro
z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
hxq : max 0 x ^ (↑n)⁻¹ < ↑q
hqy : ↑q < y ^ (↑n)⁻¹
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
state_after: case intro.intro
z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
hxq : max 0 x ^ (↑n)⁻¹ < ↑q
hqy : ↑q < y ^ (↑n)⁻¹
this : 0 ≤ max 0 x ^ (↑n)⁻¹
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
tactic: have := rpow_nonneg (le_max_left 0 x) n⁻¹
state_before: case intro.intro
z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
hxq : max 0 x ^ (↑n)⁻¹ < ↑q
hqy : ↑q < y ^ (↑n)⁻¹
this : 0 ≤ max 0 x ^ (↑n)⁻¹
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
state_after: case intro.intro
z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
hxq : max 0 x ^ (↑n)⁻¹ < ↑q
hqy : ↑q < y ^ (↑n)⁻¹
this : 0 ≤ max 0 x ^ (↑n)⁻¹
hq : 0 < ↑q
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
tactic: have hq := this.trans_lt hxq
state_before: case intro.intro
z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
hxq : max 0 x ^ (↑n)⁻¹ < ↑q
hqy : ↑q < y ^ (↑n)⁻¹
this : 0 ≤ max 0 x ^ (↑n)⁻¹
hq : 0 < ↑q
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
state_after: case intro.intro
z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
hqy : ↑q < y ^ (↑n)⁻¹
this : 0 ≤ max 0 x ^ (↑n)⁻¹
hq : 0 < ↑q
hxq : (max 0 x ^ (↑n)⁻¹) ^ ↑n < ↑q ^ ↑n
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
tactic: replace hxq := rpow_lt_rpow this hxq hn'
state_before: case intro.intro
z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
hqy : ↑q < y ^ (↑n)⁻¹
this : 0 ≤ max 0 x ^ (↑n)⁻¹
hq : 0 < ↑q
hxq : (max 0 x ^ (↑n)⁻¹) ^ ↑n < ↑q ^ ↑n
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
state_after: case intro.intro
z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
this : 0 ≤ max 0 x ^ (↑n)⁻¹
hq : 0 < ↑q
hxq : (max 0 x ^ (↑n)⁻¹) ^ ↑n < ↑q ^ ↑n
hqy : ↑q ^ ↑n < (y ^ (↑n)⁻¹) ^ ↑n
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
tactic: replace hqy := rpow_lt_rpow hq.le hqy hn'
state_before: case intro.intro
z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
this : 0 ≤ max 0 x ^ (↑n)⁻¹
hq : 0 < ↑q
hxq : (max 0 x ^ (↑n)⁻¹) ^ ↑n < ↑q ^ ↑n
hqy : ↑q ^ ↑n < (y ^ (↑n)⁻¹) ^ ↑n
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y
state_after: case intro.intro
z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
this : 0 ≤ max 0 x ^ (↑n)⁻¹
hq : 0 < ↑q
hxq : max 0 x < ↑q ^ n
hqy : ↑q ^ n < y
⊢ ∃ q, 0 < q ∧ x < ↑q ^ n ∧ ↑q ^ n < y

z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
this : 0 ≤ max 0 x ^ (↑n)⁻¹
hq : 0 < ↑q
hxq : max 0 x < ↑q ^ n
hqy : ↑q ^ n < (y ^ (↑n)⁻¹) ^ n
⊢ 0 ≤ y

z x✝ y✝ : ℝ
n : ℕ
hn : n ≠ 0
x y : ℝ
h : x < y
hy : 0 < y
hn' : 0 < ↑n
q : ℚ
this : 0 ≤ max 0 x ^ (↑n)⁻¹
hq : 0 < ↑q
hxq : (max 0 x ^ (↑n)⁻¹) ^ n < ↑q ^ n
hqy : ↑q ^ n < (y ^ (↑n)⁻¹) ^ n
⊢ 0 ≤ max 0 x
tactic: rw [rpow_natCast, rpow_natCast, rpow_inv_natCast_pow _ hn] at hxq hqy