Skip to main content
fpvandoorn/carleson
Source indexedlemma · leanprover/lean4:v4.32.0

I2_prop_2

Carleson.TileExistence · Carleson/TileExistence.lean:480 to 536

Mathematical statement

Exact Lean statement

lemma I2_prop_2 {k : ℤ} (hk : -S ≤ k) :
      ball o (4 * D ^ S - 2 * D ^ k) ⊆ ⋃ (y : Yk X k), I2 hk y

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma I2_prop_2 {k : } (hk : -S  k) :      ball o (4 * D ^ S - 2 * D ^ k)  ⋃ (y : Yk X k), I2 hk y := by    simp only [I2, mem_preimage, iUnion_coe_set]    by_cases hk_s : k = -S    · simp_rw [dif_pos hk_s]      subst hk_s      calc        ball o (4 * D ^ S - 2 * (D ^ (-S : )))           ball o (4 * D ^ S - D ^ (-S : )) := by            apply ball_subset_ball            rw [two_mul,tsub_le_iff_right,sub_add_add_cancel,le_add_iff_nonneg_right]            positivity        _  ⋃ (i  Yk X (-S)), ball i (2 * D ^ (-S : )) := cover_big_ball (-S : )    · simp_rw [dif_neg hk_s]      intro x hx      have : -S < k := lt_of_le_of_ne hk fun a_1  hk_s (id a_1.symm)      have : ((2 * (S + (k - 1))).toNat : ) + 1 < 2 * (S + k) := by        rw [Int.toNat_of_nonneg (by linarith)]        linarith      have hsub1 : ball o (4 * D ^ S - 2 * D ^ k)  ⋃ y, I3 (I_induction_proof hk hk_s) y := by        calc          ball o (4 * D ^ S - 2 * D ^ k)             ball o (4 * D ^ S - 2 * D ^ (k - 1)) := by              apply ball_subset_ball              simp only [tsub_le_iff_right]              rw [sub_eq_add_neg,add_assoc]              simp only [le_add_iff_nonneg_right, le_neg_add_iff_add_le, add_zero, Nat.ofNat_pos,                mul_le_mul_iff_right₀]              gcongr              exacts [one_le_realD a, by linarith]          _  ⋃ y, I3 _ y := I3_prop_2 _      have hmem_i3 : x  ⋃ y, I3 _ y := hsub1 hx      simp only [mem_iUnion] at hmem_i3      obtain y', hy'' := hmem_i3      have hy''' : x  ball (y' : X) (D ^ k) := by        apply (?_ : I3 _ y'  ball (y' : X) (D ^ k)) hy''        calc          I3 _ y'             ball y' (4 * D ^ (k - 1)) := I3_prop_3_2 _ y'          _  ball y' (D * D ^ (k - 1)) :=              ball_subset_ball (by gcongr; exact (four_le_realD X))          _ = ball (y': X) (D ^ k) := by            nth_rw 1 [ zpow_one (D : ), zpow_add₀ (realD_pos a).ne.symm, add_sub_cancel]      rw [mem_ball_comm] at hy'''      have hyfin : (y' : X)  ball o (4 * D ^ S - D ^ k) := by        simp only [mem_ball] at hx hy'''         calc          dist ↑y' o             dist (y' : X) x + dist x o := dist_triangle _ _ _          _ < D ^ k + (4 * D ^ S - 2 * D ^ k) := add_lt_add hy''' hx          _  4 * D ^ S - D ^ k := by linarith      have hyfin' : (y' : X)  ⋃ (y''  Yk X k), ball (y'') (2 * D ^ k) := cover_big_ball k hyfin      rw [ iUnion_coe_set (Yk X k) (fun z  ball (z : X) (2 * D ^ k))] at hyfin'      simp only [mem_iUnion] at hyfin'      obtain y2,hy2' := hyfin'      simp only [mem_iUnion, exists_prop, exists_and_left]      use y2, y2.property, y', hy2', y'.property