Theorem: Real.le_mk_of_forall_le
File: Mathlib/Data/Real/Basic.lean

Proof steps:
state_before: x y : ℝ
f : CauSeq ℚ abs
⊢ (∃ i, ∀ j ≥ i, x ≤ ↑(↑f j)) → x ≤ mk f
state_after: x y : ℝ
f : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, x ≤ ↑(↑f j)
⊢ x ≤ mk f
tactic: intro h
state_before: x y : ℝ
f : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, x ≤ ↑(↑f j)
⊢ x ≤ mk f
state_after: case h
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
⊢ mk x ≤ mk f
tactic: induction' x using Real.ind_mk with x
state_before: case h
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
⊢ mk x ≤ mk f
state_after: case h.h
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
⊢ ¬mk f < mk x
tactic: apply le_of_not_lt
state_before: case h.h
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
⊢ ¬mk f < mk x
state_after: case h.h
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
⊢ ¬f < x
tactic: rw [mk_lt]
state_before: case h.h
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
⊢ ¬f < x
state_after: case h.h.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
⊢ False
tactic: rintro ⟨K, K0, hK⟩
state_before: case h.h.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
⊢ False
state_after: case h.h.intro.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
i : ℕ
H : ∀ j ≥ i, mk x ≤ ↑(↑f j) ∧ K ≤ ↑(x - f) j ∧ ∀ k ≥ j, |↑f k - ↑f j| < K / 2
⊢ False
tactic: obtain ⟨i, H⟩ := exists_forall_ge_and h (exists_forall_ge_and hK (f.cauchy₃ <| half_pos K0))
state_before: case h.h.intro.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
i : ℕ
H : ∀ j ≥ i, mk x ≤ ↑(↑f j) ∧ K ≤ ↑(x - f) j ∧ ∀ k ≥ j, |↑f k - ↑f j| < K / 2
⊢ False
state_after: case h.h.intro.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
i : ℕ
H : ∀ j ≥ i, mk x ≤ ↑(↑f j) ∧ K ≤ ↑(x - f) j ∧ ∀ k ≥ j, |↑f k - ↑f j| < K / 2
⊢ ↑(↑f i) < mk x
tactic: apply not_lt_of_le (H _ le_rfl).1
state_before: case h.h.intro.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
i : ℕ
H : ∀ j ≥ i, mk x ≤ ↑(↑f j) ∧ K ≤ ↑(x - f) j ∧ ∀ k ≥ j, |↑f k - ↑f j| < K / 2
⊢ ↑(↑f i) < mk x
state_after: case h.h.intro.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
i : ℕ
H : ∀ j ≥ i, mk x ≤ ↑(↑f j) ∧ K ≤ ↑(x - f) j ∧ ∀ k ≥ j, |↑f k - ↑f j| < K / 2
⊢ const abs ↑(↑f i) < x
tactic: erw [mk_lt]
state_before: case h.h.intro.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
i : ℕ
H : ∀ j ≥ i, mk x ≤ ↑(↑f j) ∧ K ≤ ↑(x - f) j ∧ ∀ k ≥ j, |↑f k - ↑f j| < K / 2
⊢ const abs ↑(↑f i) < x
state_after: case h.h.intro.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
i : ℕ
H : ∀ j ≥ i, mk x ≤ ↑(↑f j) ∧ K ≤ ↑(x - f) j ∧ ∀ k ≥ j, |↑f k - ↑f j| < K / 2
j : ℕ
ij : j ≥ i
⊢ K / 2 ≤ ↑(x - const abs ↑(↑f i)) j
tactic: refine ⟨_, half_pos K0, i, fun j ij => ?_⟩
state_before: case h.h.intro.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
i : ℕ
H : ∀ j ≥ i, mk x ≤ ↑(↑f j) ∧ K ≤ ↑(x - f) j ∧ ∀ k ≥ j, |↑f k - ↑f j| < K / 2
j : ℕ
ij : j ≥ i
⊢ K / 2 ≤ ↑(x - const abs ↑(↑f i)) j
state_after: case h.h.intro.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
i : ℕ
H : ∀ j ≥ i, mk x ≤ ↑(↑f j) ∧ K ≤ ↑(x - f) j ∧ ∀ k ≥ j, |↑f k - ↑f j| < K / 2
j : ℕ
ij : j ≥ i
this : K + -(K / 2) ≤ ↑(x - f) j + (↑f j - ↑f i)
⊢ K / 2 ≤ ↑(x - const abs ↑(↑f i)) j
tactic: have := add_le_add (H _ ij).2.1 (le_of_lt (abs_lt.1 <| (H _ le_rfl).2.2 _ ij).1)
state_before: case h.h.intro.intro.intro
x✝ y : ℝ
f x : CauSeq ℚ abs
h : ∃ i, ∀ j ≥ i, mk x ≤ ↑(↑f j)
K : ℚ
K0 : K > 0
hK : ∃ i, ∀ j ≥ i, K ≤ ↑(x - f) j
i : ℕ
H : ∀ j ≥ i, mk x ≤ ↑(↑f j) ∧ K ≤ ↑(x - f) j ∧ ∀ k ≥ j, |↑f k - ↑f j| < K / 2
j : ℕ
ij : j ≥ i
this : K + -(K / 2) ≤ ↑(x - f) j + (↑f j - ↑f i)
⊢ K / 2 ≤ ↑(x - const abs ↑(↑f i)) j
state_after: no goals
tactic: rwa [← sub_eq_add_neg, sub_self_div_two, sub_apply, sub_add_sub_cancel] at this