theorem
proved
log_phi_gt_0481
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Numerics.Interval.Log on GitHub at line 239.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
for -
exp_error_10_at_0481 -
exp_taylor_10_at_0481 -
log_phi_gt_0481 -
exp_0481_lt_phi -
exp_error_10_at_0481 -
exp_taylor_10_at_0481 -
phi_gt_161803395 -
phi_gt_161803395
used by
formal source
236
237 Proof using exp monotonicity: log(φ) > 0.481 ↔ φ > exp(0.481).
238 We have φ > 1.61803395 and exp(0.481) ≈ 1.617691... < 1.61803395. -/
239theorem log_phi_gt_0481 : (0.481 : ℝ) < log Real.goldenRatio := by
240 rw [Real.lt_log_iff_exp_lt Real.goldenRatio_pos]
241 have hx_pos : (0 : ℝ) ≤ (0.481 : ℝ) := by norm_num
242 have hx_le1 : (0.481 : ℝ) ≤ 1 := by norm_num
243 have h_bound := Real.exp_bound' hx_pos hx_le1 (n := 10) (by norm_num : 0 < 10)
244 have h_taylor_eq : (∑ m ∈ Finset.range 10, (0.481 : ℝ)^m / m.factorial) =
245 (exp_taylor_10_at_0481 : ℝ) := by
246 simp only [exp_taylor_10_at_0481, Finset.sum_range_succ, Finset.sum_range_zero, Nat.factorial]
247 norm_num
248 have h_err_eq : (0.481 : ℝ)^10 * (10 + 1) / (Nat.factorial 10 * 10) =
249 (exp_error_10_at_0481 : ℝ) := by
250 simp only [exp_error_10_at_0481, Nat.factorial]
251 norm_num
252 have h_lt := exp_0481_lt_phi
253 calc Real.exp (0.481 : ℝ)
254 ≤ (∑ m ∈ Finset.range 10, (0.481 : ℝ)^m / m.factorial) +
255 (0.481 : ℝ)^10 * (10 + 1) / (Nat.factorial 10 * 10) := h_bound
256 _ = (exp_taylor_10_at_0481 : ℝ) + (exp_error_10_at_0481 : ℝ) := by rw [h_taylor_eq, h_err_eq]
257 _ < ((161803395 / 100000000 : ℚ) : ℝ) := by exact_mod_cast h_lt
258 _ = (1.61803395 : ℝ) := by norm_num
259 _ < Real.goldenRatio := phi_gt_161803395
260
261/-- Taylor sum for exp at x = 483/1000 (rational) -/
262private def exp_taylor_10_at_0483 : ℚ :=
263 let x : ℚ := 483 / 1000
264 1 + x + x^2/2 + x^3/6 + x^4/24 + x^5/120 + x^6/720 + x^7/5040 + x^8/40320 + x^9/362880
265
266/-- Error bound for Taylor at x = 483/1000 -/
267private def exp_error_10_at_0483 : ℚ :=
268 let x : ℚ := 483 / 1000
269 x^10 * 11 / (Nat.factorial 10 * 10)