-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ccaf8af
commit 8a7a363
Showing
5 changed files
with
338 additions
and
213 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
import Carleson.TileStructure | ||
import Carleson.ToMathlib.MinLayer | ||
|
||
noncomputable section | ||
|
||
open Set | ||
open scoped ShortVariables | ||
variable {X : Type*} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} | ||
{σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q D κ S o] | ||
variable {A : Set (𝔓 X)} {p : 𝔓 X} {n : ℕ} | ||
|
||
lemma exists_scale_add_le_of_mem_minLayer (hp : p ∈ A.minLayer n) : | ||
∃ p' ∈ A.minLayer 0, p' ≤ p ∧ 𝔰 p' + n ≤ 𝔰 p := by | ||
induction n generalizing p with | ||
| zero => use p, hp, le_rfl, by omega | ||
| succ n ih => | ||
obtain ⟨p', mp', lp'⟩ := exists_le_in_minLayer_of_le hp (show n ≤ n + 1 by omega) | ||
obtain ⟨q, mq, lq, _⟩ := ih mp'; use q, mq, lq.trans lp'; suffices 𝔰 p' < 𝔰 p by omega | ||
have l : 𝓘 p' < 𝓘 p := by | ||
refine lt_of_le_of_ne lp'.1 (not_lt_of_𝓘_eq_𝓘.mt ?_); rw [not_not] | ||
exact lt_of_le_of_ne lp' <| (disjoint_minLayer_of_ne (by omega)).ne_of_mem mp' hp | ||
rw [Grid.lt_def] at l; exact l.2 | ||
|
||
lemma exists_le_add_scale_of_mem_maxLayer (hp : p ∈ A.maxLayer n) : | ||
∃ p' ∈ A.maxLayer 0, p ≤ p' ∧ 𝔰 p + n ≤ 𝔰 p' := by | ||
induction n generalizing p with | ||
| zero => use p, hp, le_rfl, by omega | ||
| succ n ih => | ||
obtain ⟨p', mp', lp'⟩ := exists_le_in_maxLayer_of_le hp (show n ≤ n + 1 by omega) | ||
obtain ⟨q, mq, lq, _⟩ := ih mp'; use q, mq, lp'.trans lq; suffices 𝔰 p < 𝔰 p' by omega | ||
have l : 𝓘 p < 𝓘 p' := by | ||
refine lt_of_le_of_ne lp'.1 (not_lt_of_𝓘_eq_𝓘.mt ?_); rw [not_not] | ||
exact lt_of_le_of_ne lp' <| (disjoint_maxLayer_of_ne (by omega)).ne_of_mem hp mp' | ||
rw [Grid.lt_def] at l; exact l.2 | ||
|
||
lemma exists_scale_add_le_of_mem_layersAbove (hp : p ∈ A.layersAbove n) : | ||
∃ p' ∈ A.minLayer 0, p' ≤ p ∧ 𝔰 p' + n ≤ 𝔰 p := by | ||
obtain ⟨p', mp', lp'⟩ := exists_le_in_layersAbove_of_le hp le_rfl | ||
obtain ⟨q, mq, lq, sq⟩ := exists_scale_add_le_of_mem_minLayer mp' | ||
use q, mq, lq.trans lp', sq.trans lp'.1.2 | ||
|
||
lemma exists_le_add_scale_of_mem_layersBelow (hp : p ∈ A.layersBelow n) : | ||
∃ p' ∈ A.maxLayer 0, p ≤ p' ∧ 𝔰 p + n ≤ 𝔰 p' := by | ||
obtain ⟨p', mp', lp'⟩ := exists_le_in_layersBelow_of_le hp le_rfl | ||
obtain ⟨q, mq, lq, sq⟩ := exists_le_add_scale_of_mem_maxLayer mp' | ||
use q, mq, lp'.trans lq, (add_le_add_right lp'.1.2 _).trans sq | ||
|
||
end |
Oops, something went wrong.