AlexKontorovich/PrimeNumberTheoremAnd
Source indexedlemma Β· leanprover/lean4:v4.32.0
first_fourier_aux2
PrimeNumberTheoremAnd.Wiener Β· PrimeNumberTheoremAnd/Wiener.lean:81 to 107
Mathematical statement
Exact Lean statement
lemma first_fourier_aux2 (hx : 0 < x) (n : β) :
term f Ο' n * π (-(y * (1 / (2 * Ο) * Real.log (n / x)))) β’ Ο y =
term f (Ο' + y * I) n β’ (Ο y * x ^ (y * I))Complete declaration
Lean source
Full Lean sourceLean 4
lemma first_fourier_aux2 (hx : 0 < x) (n : β) : term f Ο' n * π (-(y * (1 / (2 * Ο) * Real.log (n / x)))) β’ Ο y = term f (Ο' + y * I) n β’ (Ο y * x ^ (y * I)) := by by_cases hn : n = 0 Β· simp [term, hn] simp only [term, hn, βreduceIte] calc _ = (f n * (cexp ((2 * Ο * -(y * (1 / (2 * Ο) * Real.log (n / x)))) * I) / β((n : β) ^ Ο'))) β’ Ο y := by rw [Circle.smul_def, fourierChar_apply, ofReal_cpow (by norm_num)] simp only [one_div, mul_inv_rev, mul_neg, ofReal_neg, ofReal_mul, ofReal_ofNat, ofReal_inv, neg_mul, smul_eq_mul, ofReal_natCast] ring _ = (f n * (x ^ (y * I) / n ^ (Ο' + y * I))) β’ Ο y := by congr 2 have l1 : 0 < (n : β) := by simpa using Nat.pos_iff_ne_zero.mpr hn have l2 : (x : β) β 0 := by simp [hx.ne.symm] have l3 : (n : β) β 0 := by simp [hn] rw [Real.rpow_def_of_pos l1, Complex.cpow_def_of_ne_zero l2, Complex.cpow_def_of_ne_zero l3] push_cast simp_rw [β Complex.exp_sub] congr 1 rw [first_fourier_aux2a, Real.log_div l1.ne.symm hx.ne.symm] push_cast rw [Complex.ofReal_log hx.le] ring _ = _ := by simp ; group