Theorem: Real.cos_pi_over_two_pow
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: simp
state_before: x : ℝ
⊢ cos (π / 2 ^ (0 + 1)) = sqrtTwoAddSeries 0 0 / 2

tactic: have : (2 : ℝ) ≠ 0 := two_ne_zero
state_before: x : ℝ
n : ℕ
⊢ cos (π / 2 ^ (n + 1 + 1)) = sqrtTwoAddSeries 0 (n + 1) / 2

tactic: symm
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ cos (π / 2 ^ (n + 1 + 1)) = sqrtTwoAddSeries 0 (n + 1) / 2

tactic: rw [div_eq_iff_mul_eq this]
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ sqrtTwoAddSeries 0 (n + 1) / 2 = cos (π / 2 ^ (n + 1 + 1))

tactic: symm
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ cos (π / 2 ^ (n + 1 + 1)) * 2 = sqrtTwoAddSeries 0 (n + 1)

tactic: rw [sqrtTwoAddSeries, sqrt_eq_iff_sq_eq, mul_pow, cos_sq, ← mul_div_assoc, Nat.add_succ,
  pow_succ, mul_div_mul_left _ _ this, cos_pi_over_two_pow _, add_mul]
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ sqrtTwoAddSeries 0 (n + 1) = cos (π / 2 ^ (n + 1 + 1)) * 2

tactic: congr
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 1 / 2 * 2 ^ 2 + sqrtTwoAddSeries 0 n / 2 / 2 * 2 ^ 2 = 2 + sqrtTwoAddSeries 0 n

case hx
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ 2 + sqrtTwoAddSeries 0 n

case hy
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ cos (π / 2 ^ (n + 1 + 1)) * 2

tactic: rw [mul_comm, sq, mul_assoc, ← mul_div_assoc, mul_div_cancel_left, ← mul_div_assoc,
    mul_div_cancel_left] <;>
  try exact this
state_before: case e_a
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ sqrtTwoAddSeries 0 n / 2 / 2 * 2 ^ 2 = sqrtTwoAddSeries 0 n

case hx
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ 2 + sqrtTwoAddSeries 0 n

case hy
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ cos (π / 2 ^ (n + 1 + 1)) * 2

tactic: apply add_nonneg
state_before: case hx
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ 2 + sqrtTwoAddSeries 0 n

case hy
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ cos (π / 2 ^ (n + 1 + 1)) * 2

tactic: norm_num
state_before: case hx.ha
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ 2

case hx.hb
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ sqrtTwoAddSeries 0 n

case hy
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ cos (π / 2 ^ (n + 1 + 1)) * 2

tactic: apply sqrtTwoAddSeries_zero_nonneg
state_before: case hx.hb
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ sqrtTwoAddSeries 0 n

case hy
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ cos (π / 2 ^ (n + 1 + 1)) * 2

tactic: norm_num
state_before: case hy
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ cos (π / 2 ^ (n + 1 + 1)) * 2

tactic: apply le_of_lt
state_before: case hy
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 ≤ cos (π / 2 ^ (n + 1 + 1))

tactic: apply cos_pos_of_mem_Ioo ⟨_, _⟩
state_before: case hy.a
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < cos (π / 2 ^ (n + 1 + 1))

tactic: apply div_lt_div' (le_refl π) _ pi_pos _
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ π / 2 ^ (n + 1 + 1) < π / 2

tactic: refine' lt_of_le_of_lt (le_of_eq (pow_one _).symm) _
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 2 < 2 ^ (n + 1 + 1)

x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < 2

tactic: apply pow_lt_pow
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 2 ^ 1 < 2 ^ (n + 1 + 1)

x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < 2

tactic: norm_num
state_before: case h
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 1 < 2

case h2
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 1 < n + 1 + 1

x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < 2

tactic: apply Nat.succ_lt_succ
state_before: case h2
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 1 < n + 1 + 1

x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < 2

tactic: apply Nat.succ_pos
state_before: case h2.a
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < n + 1

x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < 2

tactic: all_goals norm_num
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < 2

tactic: norm_num
state_before: case e_a
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 1 / 2 * 2 ^ 2 = 2

tactic: exact this
state_before: case e_a.ha
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 2 ≠ 0

tactic: trans (0 : ℝ)
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ -(π / 2) < π / 2 ^ (n + 1 + 1)

tactic: rw [neg_lt_zero]
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ -(π / 2) < 0

x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < π / 2 ^ (n + 1 + 1)

tactic: apply pi_div_two_pos
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < π / 2

x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < π / 2 ^ (n + 1 + 1)

tactic: apply div_pos pi_pos
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < π / 2 ^ (n + 1 + 1)

tactic: apply pow_pos
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < 2 ^ (n + 1 + 1)

tactic: norm_num
state_before: case H
x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < 2

tactic: norm_num
state_before: x : ℝ
n : ℕ
this : 2 ≠ 0
⊢ 0 < 2