Skip to content

Commit c34d29f

Browse files
yuanyi-350b-mehta
authored andcommitted
feat(Analysis): calculus log 3 and log 5 (leanprover-community#39640)
used in PR leanprover-community#39539
1 parent 4f849ee commit c34d29f

1 file changed

Lines changed: 37 additions & 2 deletions

File tree

Mathlib/Analysis/Complex/ExponentialBounds.lean

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,48 @@ theorem log_two_near_10 : |log 2 - 287209 / 414355| ≤ 1 / 10 ^ 10 := by
7777
norm_num1 at z
7878
rw [one_div (2 : ℝ), log_inv, ← sub_eq_add_neg, _root_.abs_sub_comm] at z
7979
apply le_trans (_root_.abs_sub_le _ _ _) (add_le_add z _)
80-
simp_rw [sum_range_succ]
81-
norm_num
80+
norm_num [sum_range_succ]
8281

8382
theorem log_two_gt_d9 : 0.6931471803 < log 2 :=
8483
lt_of_lt_of_le (by norm_num1) (sub_le_comm.1 (abs_sub_le_iff.1 log_two_near_10).2)
8584

8685
theorem log_two_lt_d9 : log 2 < 0.6931471808 :=
8786
lt_of_le_of_lt (sub_le_iff_le_add.1 (abs_sub_le_iff.1 log_two_near_10).1) (by norm_num)
8887

88+
theorem log_three_near_10 : |log 3 - 109861228867 / 100000000000| ≤ 1 / 10 ^ 10 := by
89+
suffices |log 3 - 109861228867 / 100000000000| ≤
90+
(2 / 3) ^ 71 / 3⁻¹ + (1 / 10 ^ 10 - (2 / 3) ^ 71 / 3⁻¹) by
91+
norm_num1 at *
92+
assumption
93+
have t : |2 / 3| = (2 : ℝ) / 3 := by norm_num
94+
have z := abs_log_sub_add_sum_range_le (x := 2 / 3) (by norm_num) 70
95+
rw [t, show (1 - (2 : ℝ) / 3) = (1 / 3 : ℝ) by norm_num, one_div (3 : ℝ), log_inv,
96+
← sub_eq_add_neg, _root_.abs_sub_comm] at z
97+
apply le_trans (_root_.abs_sub_le _ _ _) (add_le_add z _)
98+
norm_num [sum_range_succ]
99+
100+
theorem log_three_gt_d9 : 1.0986122885 < log 3 :=
101+
lt_of_lt_of_le (by norm_num1) (sub_le_comm.1 (abs_sub_le_iff.1 log_three_near_10).2)
102+
103+
theorem log_three_lt_d9 : log 3 < 1.0986122888 :=
104+
lt_of_le_of_lt (sub_le_iff_le_add.1 (abs_sub_le_iff.1 log_three_near_10).1) (by norm_num)
105+
106+
theorem log_five_near_10 : |log 5 - 160943791243 / 100000000000| ≤ 1 / 10 ^ 10 := by
107+
suffices |log 5 - 160943791243 / 100000000000| ≤
108+
(4 / 5) ^ 131 / 5⁻¹ + (1 / 10 ^ 10 - (4 / 5) ^ 131 / 5⁻¹) by
109+
norm_num1 at *
110+
assumption
111+
have t : |4 / 5| = (4 : ℝ) / 5 := by norm_num
112+
have z := abs_log_sub_add_sum_range_le (x := 4 / 5) (by norm_num) 130
113+
rw [t, show (1 - (4 : ℝ) / 5) = (1 / 5 : ℝ) by norm_num, one_div (5 : ℝ), log_inv,
114+
← sub_eq_add_neg, _root_.abs_sub_comm] at z
115+
apply le_trans (_root_.abs_sub_le _ _ _) (add_le_add z _)
116+
norm_num [sum_range_succ]
117+
118+
theorem log_five_gt_d9 : 1.6094379123 < log 5 :=
119+
lt_of_lt_of_le (by norm_num1) (sub_le_comm.1 (abs_sub_le_iff.1 log_five_near_10).2)
120+
121+
theorem log_five_lt_d9 : log 5 < 1.6094379126 :=
122+
lt_of_le_of_lt (sub_le_iff_le_add.1 (abs_sub_le_iff.1 log_five_near_10).1) (by norm_num)
123+
89124
end Real

0 commit comments

Comments
 (0)