Documentation

Books.Analysis2_Tao_2022.Chapters.Chap04.section05_part2

Helper for Proposition 4.5.3: factorial tail denominator dominates a geometric factor.

theorem helperForProposition_4_5_3_term_le_geometric (n k : ) :
1 / (n + (k + 1)).factorial 1 / (n + 1).factorial * (1 / 2) ^ k

Helper for Proposition 4.5.3: each factorial-tail term is bounded by a geometric term.

theorem helperForProposition_4_5_3_summable_tail (n : ) :
Summable fun (k : ) => 1 / (n + (k + 1)).factorial

Helper for Proposition 4.5.3: the shifted factorial reciprocal tail is summable.

Helper for Proposition 4.5.3: the shifted factorial reciprocal tail is bounded by a geometric sum equal to 2 / (n+1)!.

Helper for Proposition 4.5.3: the geometric upper bound is strictly below 1 / n! when n ≥ 3.

theorem factorial_tail_sum_pos_and_lt_inv_factorial (n : ) (hn : 3 n) :
0 < ∑' (k : ), 1 / (n + (k + 1)).factorial ∑' (k : ), 1 / (n + (k + 1)).factorial < 1 / n.factorial

Proposition 4.5.3: for every integer n ≥ 3, the factorial tail sum satisfies 0 < ∑' k : ℕ, 1 / (n + (k + 1))! < 1 / n!.

theorem helperForProposition_4_5_4_tsum_split_at_factorial_index (n : ) :
∑' (j : ), 1 / j.factorial = jFinset.range (n + 1), 1 / j.factorial + ∑' (k : ), 1 / (n + (k + 1)).factorial

Helper for Proposition 4.5.4: split the reciprocal-factorial series at index n+1.

theorem helperForProposition_4_5_4_factorialScaledFinitePart_isNatCast (n : ) :
∃ (A : ), n.factorial * iFinset.range (n + 1), 1 / i.factorial = A

Helper for Proposition 4.5.4: after scaling the finite prefix by n!, one gets a natural-number cast.

theorem helperForProposition_4_5_4_factorialScaledTail_between_zero_one (n : ) (hn : 3 n) :
0 < n.factorial * ∑' (k : ), 1 / (n + (k + 1)).factorial n.factorial * ∑' (k : ), 1 / (n + (k + 1)).factorial < 1

Helper for Proposition 4.5.4: scaling the factorial tail by n! yields a remainder in (0,1).

theorem helperForProposition_4_5_4_noInt_between_consecutiveIntCasts (z m : ) :
¬(z < m m < ↑(z + 1))

Helper for Proposition 4.5.4: no integer cast lies strictly between two consecutive integer casts.

theorem factorial_mul_e_not_integer (n : ) (hn : 3 n) :
¬∃ (m : ), n.factorial * realEulerNumber = m

Proposition 4.5.4: for every integer n ≥ 3, the real number n! * e is not an integer.

Helper for Proposition 4.5.5: the cutoff definition coincides with expNegInvGlue.

Helper for Proposition 4.5.5: ContDiff ℝ ⊤ implies analyticity at 0.

theorem helperForProposition_4_5_5_target_conjunction_inconsistent :
¬have f := fun (x : ) => if 0 < x then Real.exp (-1 / x) else 0; ContDiff f (∀ (k : ), iteratedDeriv k f 0 = 0) ¬AnalyticAt f 0

Helper for Proposition 4.5.5: as currently encoded, the target conjunction is inconsistent.

theorem helperForProposition_4_5_5_iteratedDeriv_zero_on_Iio (k : ) :
Set.EqOn (iteratedDeriv k fun (x : ) => if 0 < x then Real.exp (-1 / x) else 0) (fun (x : ) => 0) (Set.Iio 0)

Helper for Proposition 4.5.5: all iterated derivatives of the cutoff vanish on the negative half-line.

theorem helperForProposition_4_5_5_iteratedDeriv_zero_at_zero (hcont : ContDiff fun (x : ) => if 0 < x then Real.exp (-1 / x) else 0) (k : ) :
iteratedDeriv k (fun (x : ) => if 0 < x then Real.exp (-1 / x) else 0) 0 = 0

Helper for Proposition 4.5.5: smoothness forces every iterated derivative of the cutoff to vanish at 0.

Helper for Proposition 4.5.5: the cutoff is not analytic at 0.

theorem flat_exp_cutoff_smooth_all_derivs_zero_not_analytic_at_zero :
have f := fun (x : ) => if 0 < x then Real.exp (-1 / x) else 0; ContDiff (↑) f (∀ (k : ), iteratedDeriv k f 0 = 0) ¬AnalyticAt f 0

Proposition 4.5.5: define f : ℝ → ℝ by f x = exp (-1 / x) for x > 0 and f x = 0 for x ≤ 0. Then f is smooth on , all derivatives vanish at 0 (equivalently, for every integer k ≥ 0, f^(k)(0) = 0), and f is not real analytic at 0.

Helper for Proposition 4.5.6: analyticity on all of implies global differentiability.

theorem helperForProposition_4_5_6_deriv_log_eq_one {f : } (hf_pos : ∀ (x : ), 0 < f x) (hf_diff : Differentiable f) (hf_deriv : ∀ (x : ), deriv f x = f x) (x : ) :
deriv (fun (y : ) => Real.log (f y)) x = 1

Helper for Proposition 4.5.6: the derivative of log ∘ f is constantly 1.

theorem helperForProposition_4_5_6_log_sub_id_constant {f : } (hf_pos : ∀ (x : ), 0 < f x) (hf_diff : Differentiable f) (hf_deriv : ∀ (x : ), deriv f x = f x) (x : ) :
Real.log (f x) - x = Real.log (f 0)

Helper for Proposition 4.5.6: x ↦ log (f x) - x is constant on .

theorem helperForProposition_4_5_6_exp_form {f : } (hf_pos : ∀ (x : ), 0 < f x) (hlog_const : ∀ (x : ), Real.log (f x) - x = Real.log (f 0)) (x : ) :
f x = f 0 * Real.exp x

Helper for Proposition 4.5.6: the solution has the form f x = f 0 * exp x.

theorem analytic_deriv_eq_self_exists_pos_const_mul_exp {f : } (hf_pos : ∀ (x : ), 0 < f x) (hf_analytic : AnalyticOn f Set.univ) (hf_deriv : ∀ (x : ), deriv f x = f x) :
∃ (C : ), 0 < C ∀ (x : ), f x = C * Real.exp x

Proposition 4.5.6: if f : ℝ → (0, ∞) is real analytic and satisfies f'(x) = f(x) for all x ∈ ℝ, then there exists a constant C > 0 such that f(x) = C e^x for all x ∈ ℝ.

theorem exp_div_pow_tendsto_atTop (m : ) (hm : 1 m) :

Proposition 4.5.7: for every natural number m ≥ 1, lim_{x→+∞} (exp x / x^m) = +∞.

theorem helperForProposition_4_5_8_scaledEval_rewrite (P : Polynomial ) {c : } (hc : 0 < c) (x : ) :

Helper for Proposition 4.5.8: rewriting the composed polynomial at a scaled input.

Helper for Proposition 4.5.8: the ratio P(x) / exp(c x) tends to 0 at +∞.

Helper for Proposition 4.5.8: eventually, |P(x)| is strictly below exp(c x).

theorem helperForProposition_4_5_8_eventually_atTop_to_threshold {R : Prop} (hR : ∀ᶠ (x : ) in Filter.atTop, R x) :
∃ (N : ), x > N, R x

Helper for Proposition 4.5.8: convert an eventual atTop property into a threshold statement.

theorem exp_mul_gt_abs_polynomial_eventually (P : Polynomial ) {c : } (hc : 0 < c) :
∃ (N : ), x > N, Real.exp (c * x) > |Polynomial.eval x P|

Proposition 4.5.8: if P is a real polynomial and c > 0, then there exists N : ℝ such that for all real x > N, one has exp (c x) > |P(x)|.

Helper for Proposition 4.5.9: continuity of the positive-base coordinate map.

theorem helperForProposition_4_5_9_rpow_sideCondition (p : (Set.Ioi 0) × ) :
p.1 0 0 < p.2

Helper for Proposition 4.5.9: the base in (0,+∞) is always nonzero.

theorem positive_rpow_map_continuous_on_Ioi_prod :
Continuous fun (p : (Set.Ioi 0) × ) => p.1 ^ p.2

Proposition 4.5.9: define f : (0,+∞) × ℝ → ℝ by f(x,y) = x^y, where x^y = exp (y ln x) for x > 0 and y ∈ ℝ; then f is continuous on (0,+∞) × ℝ.

Helper for Theorem 4.5.12: the denominator of a rational divides (max 3 q.den)!.

theorem helperForTheorem_4_5_12_factorialScaledRat_isIntCast (q : ) :
∃ (m : ), (max 3 q.den).factorial * q = m

Helper for Theorem 4.5.12: multiplying a rational by a suitable factorial gives an integer cast in .

Helper for Theorem 4.5.12: exp 1 is not equal to any rational cast.

Theorem 4.5.12: The number e is irrational.

Theorem 4.5.13: The natural logarithm function ln : (0,+∞) → ℝ is real analytic on (0,+∞).