@@ -226,20 +226,19 @@ private theorem one_sub_le_m_div_m_add_one_sq [Nonempty α]
226
226
sz_positivity
227
227
228
228
private theorem m_add_one_div_m_le_one_add [Nonempty α]
229
- (hPα : #P.parts * 16 ^ #P.parts ≤ card α) (hPε : ↑100 ≤ ↑4 ^ #P.parts * ε ^ 5 )
230
- (hε₁ : ε ≤ 1 ) : ((m + 1 : ℝ) / m) ^ 2 ≤ ↑1 + ε ^ 5 / 49 := by
231
- rw [same_add_div]
232
- swap; · sz_positivity
233
- have : ↑1 + ↑1 / (m : ℝ) ≤ ↑1 + ε ^ 5 / 100 := by
234
- rw [add_le_add_iff_left, ← one_div_div (100 : ℝ)]
235
- exact one_div_le_one_div_of_le (by sz_positivity) (hundred_div_ε_pow_five_le_m hPα hPε)
236
- refine (pow_le_pow_left ?_ this 2 ).trans ?_
237
- · positivity
238
- rw [add_sq, one_pow, add_assoc, add_le_add_iff_left, mul_one, ← le_sub_iff_add_le',
239
- div_eq_mul_one_div _ (49 : ℝ), mul_div_left_comm (2 : ℝ), ← mul_sub_left_distrib, div_pow,
240
- div_le_iff₀ (show (0 : ℝ) < ↑100 ^ 2 by norm_num), mul_assoc, sq]
241
- refine mul_le_mul_of_nonneg_left ?_ (by sz_positivity)
242
- exact (pow_le_one₀ (by sz_positivity) hε₁).trans (by norm_num)
229
+ (hPα : #P.parts * 16 ^ #P.parts ≤ card α) (hPε : ↑100 ≤ ↑4 ^ #P.parts * ε ^ 5 ) (hε₁ : ε ≤ 1 ) :
230
+ ((m + 1 : ℝ) / m) ^ 2 ≤ ↑1 + ε ^ 5 / 49 := by
231
+ have : 0 ≤ ε := by sz_positivity
232
+ rw [same_add_div (by sz_positivity)]
233
+ calc
234
+ _ ≤ (1 + ε ^ 5 / 100 ) ^ 2 := by
235
+ gcongr (1 + ?_) ^ 2
236
+ rw [← one_div_div (100 : ℝ)]
237
+ exact one_div_le_one_div_of_le (by sz_positivity) (hundred_div_ε_pow_five_le_m hPα hPε)
238
+ _ = 1 + ε ^ 5 * (50 ⁻¹ + ε ^ 5 / 10000 ) := by ring
239
+ _ ≤ 1 + ε ^ 5 * (50 ⁻¹ + 1 ^ 5 / 10000 ) := by gcongr
240
+ _ ≤ 1 + ε ^ 5 * 49 ⁻¹ := by gcongr; norm_num
241
+ _ = 1 + ε ^ 5 / 49 := by rw [div_eq_mul_inv]
243
242
244
243
private theorem density_sub_eps_le_sum_density_div_card [Nonempty α]
245
244
(hPα : #P.parts * 16 ^ #P.parts ≤ card α) (hPε : ↑100 ≤ ↑4 ^ #P.parts * ε ^ 5 )
@@ -346,21 +345,20 @@ private theorem edgeDensity_chunk_aux [Nonempty α]
346
345
· exact mod_cast G.edgeDensity_le_one _ _
347
346
· exact div_le_div_of_nonneg_left (by sz_positivity) (by norm_num) (by norm_num)
348
347
rw [← sub_nonneg] at hGε
349
- have : ↑(G.edgeDensity U V) - ε ^ 5 / ↑50 ≤
350
- (∑ ab ∈ (chunk hP G ε hU).parts.product (chunk hP G ε hV).parts,
351
- (G.edgeDensity ab.1 ab.2 : ℝ)) / ↑16 ^ #P.parts := by
352
- have rflU := Set.Subset.refl (chunk hP G ε hU).parts.toSet
353
- have rflV := Set.Subset.refl (chunk hP G ε hV).parts.toSet
354
- refine (le_trans ?_ <| density_sub_eps_le_sum_density_div_card hPα hPε rflU rflV).trans ?_
355
- · rw [biUnion_parts, biUnion_parts]
356
- · rw [card_chunk (m_pos hPα).ne', card_chunk (m_pos hPα).ne', ← cast_mul, ← mul_pow, cast_pow]
357
- norm_cast
358
- refine le_trans ?_ (pow_le_pow_left hGε this 2 )
359
- rw [sub_sq, sub_add, sub_le_sub_iff_left]
360
- refine (sub_le_self _ <| sq_nonneg <| ε ^ 5 / 50 ).trans ?_
361
- rw [mul_right_comm, mul_div_left_comm, div_eq_mul_inv (ε ^ 5 ),
362
- show (2 : ℝ) / 50 = 25 ⁻¹ by norm_num]
363
- exact mul_le_of_le_one_right (by sz_positivity) (mod_cast G.edgeDensity_le_one _ _)
348
+ have : 0 ≤ ε := by sz_positivity
349
+ calc
350
+ _ = G.edgeDensity U V ^ 2 - 1 * ε ^ 5 / 25 + 0 ^ 10 / 2500 := by ring
351
+ _ ≤ G.edgeDensity U V ^ 2 - G.edgeDensity U V * ε ^ 5 / 25 + ε ^ 10 / 2500 := by
352
+ gcongr; exact mod_cast G.edgeDensity_le_one ..
353
+ _ = (G.edgeDensity U V - ε ^ 5 / 50 ) ^ 2 := by ring
354
+ _ ≤ _ := by
355
+ gcongr
356
+ have rflU := Set.Subset.refl (chunk hP G ε hU).parts.toSet
357
+ have rflV := Set.Subset.refl (chunk hP G ε hV).parts.toSet
358
+ refine (le_trans ?_ <| density_sub_eps_le_sum_density_div_card hPα hPε rflU rflV).trans ?_
359
+ · rw [biUnion_parts, biUnion_parts]
360
+ · rw [card_chunk (m_pos hPα).ne', card_chunk (m_pos hPα).ne', ← cast_mul, ← mul_pow, cast_pow]
361
+ norm_cast
364
362
365
363
private theorem abs_density_star_sub_density_le_eps (hPε : ↑100 ≤ ↑4 ^ #P.parts * ε ^ 5 )
366
364
(hε₁ : ε ≤ 1 ) {hU : U ∈ P.parts} {hV : V ∈ P.parts} (hUV' : U ≠ V) (hUV : ¬G.IsUniform ε U V) :
0 commit comments