@@ -54,7 +54,7 @@ theorem le_of_all_pow_lt_succ {x y : ℝ} (hx : 1 < x) (hy : 1 < y)
54
54
_ = x ^ n - y ^ n := geom_sum₂_mul x y n
55
55
-- Choose n larger than 1 / (x - y).
56
56
obtain ⟨N, hN⟩ := exists_nat_gt (1 / (x - y))
57
- have hNp : 0 < N := by exact_mod_cast (one_div_pos.mpr hxmy).trans hN
57
+ have hNp : 0 < N := mod_cast (one_div_pos.mpr hxmy).trans hN
58
58
have :=
59
59
calc
60
60
1 = (x - y) * (1 / (x - y)) := by field_simp
@@ -113,7 +113,7 @@ theorem fx_gt_xm1 {f : ℚ → ℝ} {x : ℚ} (hx : 1 ≤ x)
113
113
(x - 1 : ℝ) < f x := by
114
114
have hx0 :=
115
115
calc
116
- (x - 1 : ℝ) < ⌊x⌋₊ := by exact_mod_cast Nat.sub_one_lt_floor x
116
+ (x - 1 : ℝ) < ⌊x⌋₊ := mod_cast Nat.sub_one_lt_floor x
117
117
_ ≤ f ⌊x⌋₊ := H4 _ (Nat.floor_pos.2 hx)
118
118
obtain h_eq | h_lt := (Nat.floor_le <| zero_le_one.trans hx).eq_or_lt
119
119
· rwa [h_eq] at hx0
@@ -143,12 +143,12 @@ theorem fixed_point_of_pos_nat_pow {f : ℚ → ℝ} {n : ℕ} (hn : 0 < n)
143
143
(H1 : ∀ x y, 0 < x → 0 < y → f (x * y) ≤ f x * f y) (H4 : ∀ n : ℕ, 0 < n → (n : ℝ) ≤ f n)
144
144
(H5 : ∀ x : ℚ, 1 < x → (x : ℝ) ≤ f x) {a : ℚ} (ha1 : 1 < a) (hae : f a = a) :
145
145
f (a ^ n) = a ^ n := by
146
- have hh0 : (a : ℝ) ^ n ≤ f (a ^ n) := by exact_mod_cast H5 (a ^ n) (one_lt_pow ha1 hn.ne')
146
+ have hh0 : (a : ℝ) ^ n ≤ f (a ^ n) := mod_cast H5 (a ^ n) (one_lt_pow ha1 hn.ne')
147
147
have hh1 :=
148
148
calc
149
149
f (a ^ n) ≤ f a ^ n := pow_f_le_f_pow hn ha1 H1 H4
150
150
_ = (a : ℝ) ^ n := by rw [← hae]
151
- exact_mod_cast hh1.antisymm hh0
151
+ exact mod_cast hh1.antisymm hh0
152
152
#align imo2013_q5.fixed_point_of_pos_nat_pow Imo2013Q5.fixed_point_of_pos_nat_pow
153
153
154
154
theorem fixed_point_of_gt_1 {f : ℚ → ℝ} {x : ℚ} (hx : 1 < x)
@@ -170,7 +170,7 @@ theorem fixed_point_of_gt_1 {f : ℚ → ℝ} {x : ℚ} (hx : 1 < x)
170
170
_ = f (a ^ N) := by ring_nf
171
171
_ = a ^ N := (fixed_point_of_pos_nat_pow hNp H1 H4 H5 ha1 hae)
172
172
_ = x + (a ^ N - x) := by ring
173
- have heq := h1.antisymm (by exact_mod_cast h2)
173
+ have heq := h1.antisymm (mod_cast h2)
174
174
linarith [H5 x hx, H5 _ h_big_enough]
175
175
#align imo2013_q5.fixed_point_of_gt_1 Imo2013Q5.fixed_point_of_gt_1
176
176
@@ -191,7 +191,7 @@ theorem imo2013_q5 (f : ℚ → ℝ) (H1 : ∀ x y, 0 < x → 0 < y → f (x * y
191
191
calc
192
192
↑(pn + 2 ) * f x = (↑pn + 1 + 1 ) * f x := by norm_cast
193
193
_ = (↑pn + 1 ) * f x + f x := by ring
194
- _ ≤ f (↑pn.succ * x) + f x := by exact_mod_cast add_le_add_right (hpn pn.succ_pos) (f x)
194
+ _ ≤ f (↑pn.succ * x) + f x := mod_cast add_le_add_right (hpn pn.succ_pos) (f x)
195
195
_ ≤ f ((↑pn + 1 ) * x + x) := by exact_mod_cast H2 _ _ (mul_pos pn.cast_add_one_pos hx) hx
196
196
_ = f ((↑pn + 1 + 1 ) * x) := by ring_nf
197
197
_ = f (↑(pn + 2 ) * x) := by norm_cast
@@ -216,10 +216,10 @@ theorem imo2013_q5 (f : ℚ → ℝ) (H1 : ∀ x y, 0 < x → 0 < y → f (x * y
216
216
have hxnm1 : ∀ n : ℕ, 0 < n → (x : ℝ) ^ n - 1 < f x ^ n := by
217
217
intro n hn
218
218
calc
219
- (x : ℝ) ^ n - 1 < f (x ^ n) := by
220
- exact_mod_cast fx_gt_xm1 (one_le_pow_of_one_le hx.le n) H1 H2 H4
219
+ (x : ℝ) ^ n - 1 < f (x ^ n) :=
220
+ mod_cast fx_gt_xm1 (one_le_pow_of_one_le hx.le n) H1 H2 H4
221
221
_ ≤ f x ^ n := pow_f_le_f_pow hn hx H1 H4
222
- have hx' : 1 < (x : ℝ) := by exact_mod_cast hx
222
+ have hx' : 1 < (x : ℝ) := mod_cast hx
223
223
have hxp : 0 < x := by positivity
224
224
exact le_of_all_pow_lt_succ' hx' (f_pos_of_pos hxp H1 H4) hxnm1
225
225
have h_f_commutes_with_pos_nat_mul : ∀ n : ℕ, 0 < n → ∀ x : ℚ, 0 < x → f (n * x) = n * f x := by
0 commit comments