def
definition
exp_error_10_at_048
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 184.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
181 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
182
183/-- Error bound for Taylor at x = 48/100 -/
184private def exp_error_10_at_048 : ℚ :=
185 let x : ℚ := 48 / 100
186 x^10 * 11 / (Nat.factorial 10 * 10)
187
188/-- exp(0.48) < φ (via Taylor bound + φ lower bound) -/
189private lemma exp_048_lt_phi : exp_taylor_10_at_048 + exp_error_10_at_048 < 161803395 / 100000000 := by
190 native_decide
191
192/-- Rigorous lower bound: log(φ) > 0.48
193
194 Proof using exp monotonicity: log(φ) > 0.48 ↔ φ > exp(0.48).
195 We have φ > 1.61803395 and exp(0.48) ≈ 1.6160... < 1.61803395. -/
196theorem log_phi_gt_048 : (0.48 : ℝ) < log Real.goldenRatio := by
197 -- Equivalent to: exp(0.48) < φ
198 rw [Real.lt_log_iff_exp_lt Real.goldenRatio_pos]
199 -- Use Taylor bound for exp(0.48)
200 have hx_pos : (0 : ℝ) ≤ (0.48 : ℝ) := by norm_num
201 have hx_le1 : (0.48 : ℝ) ≤ 1 := by norm_num
202 have h_bound := Real.exp_bound' hx_pos hx_le1 (n := 10) (by norm_num : 0 < 10)
203 -- exp(0.48) ≤ S_10 + error
204 have h_taylor_eq : (∑ m ∈ Finset.range 10, (0.48 : ℝ)^m / m.factorial) =
205 (exp_taylor_10_at_048 : ℝ) := by
206 simp only [exp_taylor_10_at_048, Finset.sum_range_succ, Finset.sum_range_zero, Nat.factorial]
207 norm_num
208 have h_err_eq : (0.48 : ℝ)^10 * (10 + 1) / (Nat.factorial 10 * 10) =
209 (exp_error_10_at_048 : ℝ) := by
210 simp only [exp_error_10_at_048, Nat.factorial]
211 norm_num
212 have h_lt := exp_048_lt_phi
213 calc Real.exp (0.48 : ℝ)
214 ≤ (∑ m ∈ Finset.range 10, (0.48 : ℝ)^m / m.factorial) +