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

tactic: symm
state_before: x : ℝ
n : ℕ
⊢ sin (π / 2 ^ (n + 2)) = sqrt (2 - sqrtTwoAddSeries 0 n) / 2

tactic: rw [div_eq_iff_mul_eq]
state_before: x : ℝ
n : ℕ
⊢ sqrt (2 - sqrtTwoAddSeries 0 n) / 2 = sin (π / 2 ^ (n + 2))

tactic: symm
state_before: x : ℝ
n : ℕ
⊢ sin (π / 2 ^ (n + 2)) * 2 = sqrt (2 - sqrtTwoAddSeries 0 n)

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: rw [sqrt_eq_iff_sq_eq, mul_pow, sin_sq_pi_over_two_pow_succ, sub_mul]
state_before: x : ℝ
n : ℕ
⊢ sqrt (2 - sqrtTwoAddSeries 0 n) = sin (π / 2 ^ (n + 2)) * 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: apply le_of_lt
state_before: case hy
x : ℝ
n : ℕ
⊢ 0 ≤ sin (π / 2 ^ (n + 2)) * 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: apply mul_pos
state_before: case hy.a
x : ℝ
n : ℕ
⊢ 0 < sin (π / 2 ^ (n + 2)) * 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: apply sin_pos_of_pos_of_lt_pi
state_before: case hy.a.ha
x : ℝ
n : ℕ
⊢ 0 < sin (π / 2 ^ (n + 2))

case hy.a.hb
x : ℝ
n : ℕ
⊢ 0 < 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: refine' lt_of_lt_of_le _ (le_of_eq (div_one _))
state_before: case hy.a.ha.hxp
x : ℝ
n : ℕ
⊢ π / 2 ^ (n + 2) < π

case hy.a.hb
x : ℝ
n : ℕ
⊢ 0 < 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: rw [div_lt_div_left]
state_before: case hy.a.ha.hxp
x : ℝ
n : ℕ
⊢ π / 2 ^ (n + 2) < π / 1

case hy.a.hb
x : ℝ
n : ℕ
⊢ 0 < 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: refine' lt_of_le_of_lt (le_of_eq (pow_zero 2).symm) _
state_before: case hy.a.ha.hxp
x : ℝ
n : ℕ
⊢ 1 < 2 ^ (n + 2)

case hy.a.ha.hxp.ha
x : ℝ
n : ℕ
⊢ 0 < π

case hy.a.ha.hxp.hb
x : ℝ
n : ℕ
⊢ 0 < 2 ^ (n + 2)

case hy.a.ha.hxp.hc
x : ℝ
n : ℕ
⊢ 0 < 1

case hy.a.hb
x : ℝ
n : ℕ
⊢ 0 < 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: apply pow_lt_pow
state_before: case hy.a.ha.hxp
x : ℝ
n : ℕ
⊢ 2 ^ 0 < 2 ^ (n + 2)

case hy.a.ha.hxp.ha
x : ℝ
n : ℕ
⊢ 0 < π

case hy.a.ha.hxp.hb
x : ℝ
n : ℕ
⊢ 0 < 2 ^ (n + 2)

case hy.a.ha.hxp.hc
x : ℝ
n : ℕ
⊢ 0 < 1

case hy.a.hb
x : ℝ
n : ℕ
⊢ 0 < 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: norm_num
state_before: case hy.a.ha.hxp.h
x : ℝ
n : ℕ
⊢ 1 < 2

case hy.a.ha.hxp.h2
x : ℝ
n : ℕ
⊢ 0 < n + 2

case hy.a.ha.hxp.ha
x : ℝ
n : ℕ
⊢ 0 < π

case hy.a.ha.hxp.hb
x : ℝ
n : ℕ
⊢ 0 < 2 ^ (n + 2)

case hy.a.ha.hxp.hc
x : ℝ
n : ℕ
⊢ 0 < 1

case hy.a.hb
x : ℝ
n : ℕ
⊢ 0 < 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: apply Nat.succ_pos
state_before: case hy.a.ha.hxp.h2
x : ℝ
n : ℕ
⊢ 0 < n + 2

case hy.a.ha.hxp.ha
x : ℝ
n : ℕ
⊢ 0 < π

case hy.a.ha.hxp.hb
x : ℝ
n : ℕ
⊢ 0 < 2 ^ (n + 2)

case hy.a.ha.hxp.hc
x : ℝ
n : ℕ
⊢ 0 < 1

case hy.a.hb
x : ℝ
n : ℕ
⊢ 0 < 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: apply pi_pos
state_before: case hy.a.ha.hxp.ha
x : ℝ
n : ℕ
⊢ 0 < π

case hy.a.ha.hxp.hb
x : ℝ
n : ℕ
⊢ 0 < 2 ^ (n + 2)

case hy.a.ha.hxp.hc
x : ℝ
n : ℕ
⊢ 0 < 1

case hy.a.hb
x : ℝ
n : ℕ
⊢ 0 < 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: apply pow_pos
state_before: case hy.a.ha.hxp.hb
x : ℝ
n : ℕ
⊢ 0 < 2 ^ (n + 2)

case hy.a.ha.hxp.hc
x : ℝ
n : ℕ
⊢ 0 < 1

case hy.a.hb
x : ℝ
n : ℕ
⊢ 0 < 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: all_goals norm_num
state_before: case hy.a.ha.hxp.hb.H
x : ℝ
n : ℕ
⊢ 0 < 2

case hy.a.ha.hxp.hc
x : ℝ
n : ℕ
⊢ 0 < 1

case hy.a.hb
x : ℝ
n : ℕ
⊢ 0 < 2

x : ℝ
n : ℕ
⊢ 2 ≠ 0

tactic: congr <;> norm_num
state_before: x : ℝ
n : ℕ
⊢ 1 / 2 * 2 ^ 2 - sqrtTwoAddSeries 0 n / 4 * 2 ^ 2 = 2 - sqrtTwoAddSeries 0 n

tactic: rw [sub_nonneg]
state_before: case hx
x : ℝ
n : ℕ
⊢ 0 ≤ 2 - sqrtTwoAddSeries 0 n

tactic: apply le_of_lt
state_before: case hx
x : ℝ
n : ℕ
⊢ sqrtTwoAddSeries 0 n ≤ 2

tactic: apply sqrtTwoAddSeries_lt_two
state_before: case hx.a
x : ℝ
n : ℕ
⊢ sqrtTwoAddSeries 0 n < 2

tactic: apply div_pos pi_pos
state_before: case hy.a.ha.h0x
x : ℝ
n : ℕ
⊢ 0 < π / 2 ^ (n + 2)

tactic: apply pow_pos
state_before: case hy.a.ha.h0x
x : ℝ
n : ℕ
⊢ 0 < 2 ^ (n + 2)

tactic: norm_num
state_before: case hy.a.ha.h0x.H
x : ℝ
n : ℕ
⊢ 0 < 2

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