1.5. Proof of discrete Carleson
Let a grid structure (\mathcal{D}, c, s) and a tile structure
(\fP, \scI, \fc, \fcc) for this grid structure be given. In
[??], we decompose the set \fP of tiles into subsets. Each
subset will be controlled by one of three methods. The guiding principle of the
decomposition is to be able to apply the forest estimate of Theorem 1.7
to the final subsets defined in defc5. This application is done in
[??]. The miscellaneous subsets along the construction of the forests
will either be thrown into exceptional sets, which are defined and controlled
in [??], or will be controlled by the antichain estimate of
Theorem 1.6, which is done in [??].
[??] contains some auxiliary lemmas needed for the proofs in
Subsections [??]-[??].
1.5.1. Organisation of the tiles
In the following definitions, k, n, and j will be nonnegative integers.
Define \mathcal{C}(G,k) to be the set of I\in \mathcal{D} such that
there exists a J\in \mathcal{D} with I\subset J and
{\mu(G \cap J)} > 2^{-k-1}{\mu(J)},
but there does not exist a J\in \mathcal{D} with I\subset J and
{\mu(G \cap J)} > 2^{-k}{\mu(J)}.
Let
\fP(k)=\{\fp\in \fP \ : \ \scI(\fp)\in \mathcal{C}(G,k)\}
Define {\mathfrak{M}}(k,n) to be the set of \fp \in \fP(k) such that
\mu({E_1}(\fp)) > 2^{-n} \mu(\scI(\fp))
and there does not exist \fp'\in \fP(k) with \fp'\neq \fp and
\fp\le \fp' such that
\mu({E_1}(\fp')) > 2^{-n} \mu(\scI(\fp')).
Define for a collection \fP'\subset \fP(k)
\dens_k' (\fP'):= \sup_{\fp'\in \fP'}\sup_{\lambda \geq 2} \lambda^{-a} \sup_{\fp \in \fP(k): \lambda \fp' \lesssim \lambda \fp}
\frac{\mu({E}_2(\lambda, \fp))}{\mu(\scI(\fp))}.
Sorting by density, we define
\fC(k,n):=\{\fp\in \fP(k) \ : \
2^{4a}2^{-n}< \dens_k'(\{\fp\}) \le
2^{4a}2^{-n+1}\}.
Following Fefferman, we define for \fp \in \fC(k,n)
\mathfrak{B}(\fp) := \{ \mathfrak{m} \in \mathfrak{M}(k,n) \ : \ 100 \fp \lesssim \mathfrak{m}\}
and
\fC_1(k,n,j) := \{\fp \in \fC(k,n) \ : \ 2^{j} \leq |\mathfrak{B}(\fp)| < 2^{j+1}\},
and
\fL_0(k,n) := \{\fp \in \fC(k,n) \ : \ |\mathfrak{B}(\fp)| <1\}.
Together with the following removal of minimal layers, the splitting into
\fC_1(k,n,j) will lead to a separation of trees. Define recursively for
0\le l\le Z(n+1)
\fL_1(k,n,j,l)
to be the set of minimal elements with respect to \le in
\fC_1(k,n,j)\setminus \bigcup_{0\le l'<l}
\fL_1(k,n,j,l').
Define
\fC_2(k,n,j):= \fC_1(k,n,j)\setminus \bigcup_{0\le l'\le Z(n+1)}
\fL_1(k,n,j,l').
The remaining tile organization will be relative to prospective tree tops,
which we define now. Define
\fU_1(k,n,j)
to be the set of all \fu \in \fC_1(k,n,j) such that for all
\fp \in \fC_1(k,n,j) with \scI(\fu) strictly contained in
\scI(\fp) we have
B_{\fu}(\fcc(\fu), 100) \cap B_{\fp}(\fcc(\fp),100) = \emptyset. We first
remove the pairs that are outside the immediate reach of any of the
prospective tree tops. Define
\fL_2(k,n,j)
to be the set of all \fp\in \fC_2(k,n,j) such that there does not exist
\fu\in \fU_1(k,n,j) with \scI(\fp)\neq \scI(\fu) and 2\fp\lesssim \fu.
Define
\fC_3(k,n,j):=\fC_2(k,n,j)
\setminus \fL_2(k,n,j).
We next remove the maximal layers. Define recursively for
0 \le l \le Z(n+1)
\fL_3(k,n,j,l)
to be the set of all maximal elements with respect to \le in
\fC_3(k,n,j) \setminus \bigcup_{0 \le l' < l} \fL_3(k,n,j,l').
Define
\fC_4(k,n,j):=\fC_3(k,n,j)
\setminus \bigcup_{0 \le l \le Z(n+1)} \fL_3(k,n,j,l).
Finally, we remove the boundary pairs relative to the prospective tree tops.
Define
\mathcal{L}(\fu)
to be the set of all I \in \mathcal{D} with I \subset \scI(\fu) and
s(I) = \ps(\fu) - Z(n+1) - 1 and
B(c(I), 8 D^{s(I)})\not \subset \scI(\fu). Define
\fL_4(k,n,j)
to be the set of all \fp\in \fC_4(k,n,j) such that there exists
\fu\in \fU_1(k,n,j) with
\scI(\fp) \subset \bigcup \mathcal{L}(\fu), and define
\fC_5(k,n,j):=\fC_4(k,n,j)
\setminus \fL_4(k,n,j).
We define three exceptional sets. The first exceptional set G_1 takes into
account the ratio of the measures of F and G. Define
\fP_{F,G} to be the set of all \fp\in \fP with
\dens_2(\{\fp\})> 2^{2a+5}\frac{\mu(F)}{\mu(G)}.
Define
G_1:=\bigcup_{\fp\in \fP_{F,G} }\scI(\fp).
For an integer \lambda\ge 0, define A(\lambda,k,n) to be the set of all
x\in X such that
\sum_{\fp \in \mathfrak{M}(k,n)}\mathbf{1}_{\scI(\fp)}(x)>\lambda 2^{n+1}
and define
G_2:=
\bigcup_{k\ge 0}\bigcup_{k\le n}
A(2n+6,k,n).
Define
G_3 :=
\bigcup_{k\ge 0}\, \bigcup_{n \geq k}\,
\bigcup_{0\le j\le 2n+3}
\bigcup_{\fp \in \fL_4 (k,n,j)}
\scI(\fp).
Define G'=G_1\cup G_2 \cup G_3. The following bound of the measure of
G' will be proven in [??].
-
exceptional_set[complete]
Uses Lemma 1.35, Lemma 1.40, and Lemma 1.44.
We have
\mu(G')\le 2^{-1}\mu(G).
Lean code for Lemma1.32●1 theorem
Associated Lean declarations
-
exceptional_set[complete]
-
exceptional_set[complete]
-
theoremdefined in Carleson/Discrete/ExceptionalSet.leancomplete
theorem exceptional_set.{u_1}
exceptional_set.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : MeasureTheory.volume G' ≤ 2 ^ (-1) * MeasureTheory.volume GLemma 5.1.1{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.G'G'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe set `G'`, defined below (5.1.28).≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(-1) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet Xtheorem exceptional_set.{u_1}
exceptional_set.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : MeasureTheory.volume G' ≤ 2 ^ (-1) * MeasureTheory.volume GLemma 5.1.1{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.G'G'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe set `G'`, defined below (5.1.28).≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(-1) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet XLemma 5.1.1
In [??], we identify each set \fC_5(k,n,j) outside G' as a
forest and use Proposition Theorem 1.7 to prove the following lemma.
-
forest_union[complete]
Uses Theorem 1.7, Lemma 1.56, Lemma 1.59, Lemma 1.60, Lemma 1.61, Lemma 1.62, Lemma 1.63, and Lemma 1.64.
Let
\fP_1 =\bigcup_{k\ge 0}\bigcup_{n\ge k}
\bigcup_{0\le j\le 2n+3}\fC_5(k,n,j)
For all f:X\to \C with |f|\le \mathbf{1}_F we have
\int_{G \setminus G'} \left|\sum_{\fp \in \fP_1} T_{\fp} f \right|\, \mathrm{d}\mu \le \frac{2^{441a^3}}{(q-1)^4} \mu(G)^{1 - \frac{1}{q}} \mu(F)^{\frac{1}{q}}.
Lean code for Lemma1.33●1 theorem
Associated Lean declarations
-
forest_union[complete]
-
forest_union[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem forest_union.{u_1}
forest_union.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {f : X → ℂ} (hf : ∀ (x : X), ‖f x‖ ≤ F.indicator 1 x) (h'f : Measurable f) : ∫⁻ (x : X) in G \ G', ‖carlesonSum 𝔓₁ f x‖ₑ ≤ ↑(C5_1_2 a (nnq X)) * MeasureTheory.volume G ^ (1 - q⁻¹) * MeasureTheory.volume F ^ q⁻¹Lemma 5.1.2 in the blueprint: the integral of the Carleson sum over the set which can naturally be decomposed as a union of forests can be controlled, thanks to the estimate for a single forest.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hf∀ (x : X), ‖f x‖ ≤ F.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (h'fMeasurable f: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.fX → ℂ) : ∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(xX: XType u_1) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.GSet X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.G'G'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe set `G'`, defined below (5.1.28).,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.𝔓₁𝔓₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The set `𝔓₁`, defined in (5.1.30).fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C5_1_2C5_1_2 (a : ℕ) (q : NNReal) : NNRealThe constant used in Lemma 5.1.2. Has value `2 ^ (441 * a ^ 3) / (q - 1) ^ 4` in the blueprint.aℕ(nnqnnq.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : NNReal`q` as an element of `ℝ≥0`.XType u_1)) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet X^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).1 -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).qℝ⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.FSet X^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.qℝ⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.theorem forest_union.{u_1}
forest_union.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {f : X → ℂ} (hf : ∀ (x : X), ‖f x‖ ≤ F.indicator 1 x) (h'f : Measurable f) : ∫⁻ (x : X) in G \ G', ‖carlesonSum 𝔓₁ f x‖ₑ ≤ ↑(C5_1_2 a (nnq X)) * MeasureTheory.volume G ^ (1 - q⁻¹) * MeasureTheory.volume F ^ q⁻¹Lemma 5.1.2 in the blueprint: the integral of the Carleson sum over the set which can naturally be decomposed as a union of forests can be controlled, thanks to the estimate for a single forest.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hf∀ (x : X), ‖f x‖ ≤ F.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (h'fMeasurable f: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.fX → ℂ) : ∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(xX: XType u_1) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.GSet X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.G'G'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe set `G'`, defined below (5.1.28).,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.𝔓₁𝔓₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The set `𝔓₁`, defined in (5.1.30).fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C5_1_2C5_1_2 (a : ℕ) (q : NNReal) : NNRealThe constant used in Lemma 5.1.2. Has value `2 ^ (441 * a ^ 3) / (q - 1) ^ 4` in the blueprint.aℕ(nnqnnq.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : NNReal`q` as an element of `ℝ≥0`.XType u_1)) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet X^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).1 -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).qℝ⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.FSet X^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.qℝ⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.Lemma 5.1.2 in the blueprint: the integral of the Carleson sum over the set which can naturally be decomposed as a union of forests can be controlled, thanks to the estimate for a single forest.
In [??], we decompose the complement of the set of tiles in Lemma Lemma 1.33 and apply the antichain estimate of Theorem 1.6 to prove the following lemma.
-
forest_complement[complete]
Uses Theorem 1.6, Lemma 1.65, Lemma 1.66, Lemma 1.67, Lemma 1.68, and Lemma 1.56.
Let
\fP_2 =\fP\setminus \fP_1.
For all f:X\to \C with |f|\le \mathbf{1}_F we have
\int_{G \setminus G'} \left|\sum_{\fp \in \fP_2} T_{\fp} f\right| \, \mathrm{d}\mu \le \frac{2^{120a^3}}{(q-1)^5} \mu(G)^{1 - \frac{1}{q}} \mu(F)^{\frac{1}{q}}.
Lean code for Lemma1.34●1 theorem
Associated Lean declarations
-
forest_complement[complete]
-
forest_complement[complete]
-
theoremdefined in Carleson/Discrete/ForestComplement.leancomplete
theorem forest_complement.{u_1}
forest_complement.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {f : X → ℂ} (hf : ∀ (x : X), ‖f x‖ ≤ F.indicator 1 x) (h'f : Measurable f) : ∫⁻ (x : X) in G \ G', ‖carlesonSum 𝔓₁ᶜ f x‖ₑ ≤ ↑(C5_1_3 a (nnq X)) * MeasureTheory.volume G ^ (1 - q⁻¹) * MeasureTheory.volume F ^ q⁻¹Lemma 5.1.3, proving the bound on the integral of the Carleson sum over all leftover tiles which do not fit in a forest. It follows from a careful grouping of these tiles into finitely many antichains.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hf∀ (x : X), ‖f x‖ ≤ F.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (h'fMeasurable f: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.fX → ℂ) : ∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(xX: XType u_1) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.GSet X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.G'G'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe set `G'`, defined below (5.1.28).,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.𝔓₁𝔓₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The set `𝔓₁`, defined in (5.1.30).ᶜCompl.compl.{u_1} {α : Type u_1} [self : Compl α] : α → αSet / lattice complement Conventions for notations in identifiers: * The recommended spelling of `ᶜ` in identifiers is `compl`.fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C5_1_3C5_1_3 (a : ℕ) (q : NNReal) : NNRealThe constant used in Lemma 5.1.3. Has value `2 ^ (120 * a ^ 3) / (q - 1) ^ 5` in the blueprint.aℕ(nnqnnq.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : NNReal`q` as an element of `ℝ≥0`.XType u_1)) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet X^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).1 -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).qℝ⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.FSet X^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.qℝ⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.theorem forest_complement.{u_1}
forest_complement.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {f : X → ℂ} (hf : ∀ (x : X), ‖f x‖ ≤ F.indicator 1 x) (h'f : Measurable f) : ∫⁻ (x : X) in G \ G', ‖carlesonSum 𝔓₁ᶜ f x‖ₑ ≤ ↑(C5_1_3 a (nnq X)) * MeasureTheory.volume G ^ (1 - q⁻¹) * MeasureTheory.volume F ^ q⁻¹Lemma 5.1.3, proving the bound on the integral of the Carleson sum over all leftover tiles which do not fit in a forest. It follows from a careful grouping of these tiles into finitely many antichains.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hf∀ (x : X), ‖f x‖ ≤ F.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (h'fMeasurable f: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.fX → ℂ) : ∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(xX: XType u_1) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.GSet X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.G'G'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe set `G'`, defined below (5.1.28).,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.𝔓₁𝔓₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The set `𝔓₁`, defined in (5.1.30).ᶜCompl.compl.{u_1} {α : Type u_1} [self : Compl α] : α → αSet / lattice complement Conventions for notations in identifiers: * The recommended spelling of `ᶜ` in identifiers is `compl`.fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C5_1_3C5_1_3 (a : ℕ) (q : NNReal) : NNRealThe constant used in Lemma 5.1.3. Has value `2 ^ (120 * a ^ 3) / (q - 1) ^ 5` in the blueprint.aℕ(nnqnnq.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : NNReal`q` as an element of `ℝ≥0`.XType u_1)) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet X^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).1 -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).qℝ⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.FSet X^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.qℝ⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.Lemma 5.1.3, proving the bound on the integral of the Carleson sum over all leftover tiles which do not fit in a forest. It follows from a careful grouping of these tiles into finitely many antichains.
Proof of Theorem 1.5. Theorem 1.5 follows by applying the
triangle inequality to disclesssim according to the splitting in
Lemma 1.33 and Lemma 1.34 and using both lemmas as well as the
bound on the set G' given by Lemma 1.32.
1.5.2. Proof of the Exceptional Sets Lemma
We prove separate bounds for G_1, G_2, and G_3 in Lemmas
Lemma 1.35, Lemma 1.40, and Lemma 1.44. Adding up these
bounds proves Lemma 1.32.
The bound for G_1 follows from the Vitali covering lemma,
Theorem 1.9.
-
first_exception[complete]
Uses Theorem 1.9.
We have
\mu(G_1)\le 2^{-5}\mu(G).
Lean code for Lemma1.35●1 theorem
Associated Lean declarations
-
first_exception[complete]
-
first_exception[complete]
-
theoremdefined in Carleson/Discrete/ExceptionalSet.leancomplete
theorem first_exception.{u_1}
first_exception.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : MeasureTheory.volume G₁ ≤ 2 ^ (-4) * MeasureTheory.volume G{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.G₁G₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe exceptional set `G₁`, defined in (5.1.25).≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(-4) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet Xtheorem first_exception.{u_1}
first_exception.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : MeasureTheory.volume G₁ ≤ 2 ^ (-4) * MeasureTheory.volume G{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.G₁G₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe exceptional set `G₁`, defined in (5.1.25).≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(-4) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet X
Proof. Let
K = 2^{2a+5}\frac{\mu(F)}{\mu(G)}.
For each \fp\in \fP_{F,G} pick a r(\fp)>4D^{\ps(\fp)} with
{\mu(F\cap B(\pc(\fp),r(\fp)))}\ge K{\mu(B(\pc(\fp),r(\fp)))}.
This ball exists by definition of \fP_{F,G} and dens_2. By applying
Theorem 1.9 to the collection of balls
\mathcal{B} = \{B(\pc(\fp),r(\fp)) \ : \ \fp \in \fP_{F,G}\}
and the function u = \mathbf{1}_F, we obtain
\mu(\bigcup \mathcal{B}) \le 2^{2a} K^{-1} \mu(F).
We conclude with eq-vol-sp-cube and r(\fp)>4D^{\ps(\fp)}
\mu(G_1)= \mu(\bigcup_{\fp\in \fP_{F,G}} \scI(\fp))
\le \mu(\bigcup \mathcal{B})\le 2^{2a} K^{-1} \mu (F) = 2^{-5}\mu(G).
We turn to the bound of G_2, which relies on the Dyadic Covering
Lemma 1.36 and the John-Nirenberg Lemma 1.39 below.
-
dense_cover[complete]
For each k\ge 0, the union of all dyadic cubes in \mathcal{C}(G,k) has
measure at most 2^{k+1} \mu(G).
Lean code for Lemma1.36●1 theorem
Associated Lean declarations
-
dense_cover[complete]
-
dense_cover[complete]
-
theoremdefined in Carleson/Discrete/ExceptionalSet.leancomplete
theorem dense_cover.{u_1}
dense_cover.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k : ℕ) : MeasureTheory.volume (⋃ i ∈ 𝓒 k, ↑i) ≤ 2 ^ (k + 1) * MeasureTheory.volume GLemma 5.2.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] (kℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(⋃ iGrid X∈ 𝓒𝓒.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k : ℕ) : Set (Grid X)The partition `𝓒(G, k)` of `Grid X` by volume, given in (5.1.1) and (5.1.2). Note: the `G` is fixed with properties in `ProofData`.kℕ, ↑iGrid X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.kℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet Xtheorem dense_cover.{u_1}
dense_cover.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k : ℕ) : MeasureTheory.volume (⋃ i ∈ 𝓒 k, ↑i) ≤ 2 ^ (k + 1) * MeasureTheory.volume GLemma 5.2.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] (kℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(⋃ iGrid X∈ 𝓒𝓒.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k : ℕ) : Set (Grid X)The partition `𝓒(G, k)` of `Grid X` by volume, given in (5.1.1) and (5.1.2). Note: the `G` is fixed with properties in `ProofData`.kℕ, ↑iGrid X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.kℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet XLemma 5.2.2
Proof. The union of dyadic cubes in \mathcal{C}(G,k) is contained in the
union of elements of the set \mathcal{M}(k) of all dyadic cubes J with
{\mu(G \cap J)} > 2^{-k-1}{\mu(J)}. The union of elements in the set
\mathcal{M}(k) is contained in the union of elements in the set
\mathcal{M}^*(k) of maximal elements in \mathcal{M}(k) with respect to
set inclusion. Hence
\mu (\bigcup \mathcal{C}(G,k))\le \mu (\bigcup \mathcal{M}^*(k))\le
\sum_{J\in \mathcal{M}^*(k)}\mu(J).
Using the definition of \mathcal{M}(k) and then the pairwise disjointedness
of elements in \mathcal{M}^*(k), we estimate this by
\le
2^{k+1}\sum_{J\in \mathcal{M}^*(k)}\mu(J\cap G)
\le 2^{k+1}\mu(G).
This proves the lemma.
-
pairwiseDisjoint_E1[complete]
If \fp, \fp' \in {\mathfrak{M}}(k,n) and
{E_1}(\fp)\cap {E_1}(\fp')\neq \emptyset
then \fp=\fp'.
Lean code for Lemma1.37●1 theorem
Associated Lean declarations
-
pairwiseDisjoint_E1[complete]
-
pairwiseDisjoint_E1[complete]
-
theoremdefined in Carleson/Discrete/ExceptionalSet.leancomplete
theorem pairwiseDisjoint_E1.{u_1}
pairwiseDisjoint_E1.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} : (𝔐 k n).PairwiseDisjoint E₁Lemma 5.2.3{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (𝔐𝔐.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The definition `𝔐(k, n)` given in (5.1.4) and (5.1.5).kℕnℕ).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.E₁E₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set Xtheorem pairwiseDisjoint_E1.{u_1}
pairwiseDisjoint_E1.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} : (𝔐 k n).PairwiseDisjoint E₁Lemma 5.2.3{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (𝔐𝔐.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The definition `𝔐(k, n)` given in (5.1.4) and (5.1.5).kℕnℕ).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.E₁E₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XLemma 5.2.3
Proof. Let \fp,\fp' be as in the lemma. By definition of E_1, we have
E_1(\fp)\subset \scI(\fp) and analogously for \fp', we conclude from
eintersect that \scI(\fp)\cap \scI(\fp')\neq \emptyset. Let without loss
of generality \scI(\fp) be maximal in
\{\scI(\fp),\scI(\fp')\}, then
\scI(\fp')\subset \scI(\fp). By eintersect, we conclude by definition of
E_1 that \fc(\fp)\cap \fc(\fp')\neq \emptyset. By eq-freq-dyadic we
conclude \fc(\fp)\subset \fc(\fp'). It follows that \fp'\le \fp. By
maximality mnkmax of \fp', we have \fp'=\fp. This proves the lemma.
-
dyadic_union[complete]
For each x\in A(\lambda,k,n), there is a dyadic cube I that contains
x and is a subset of A(\lambda,k,n).
Lean code for Lemma1.38●1 theorem
Associated Lean declarations
-
dyadic_union[complete]
-
dyadic_union[complete]
-
theoremdefined in Carleson/Discrete/ExceptionalSet.leancomplete
theorem dyadic_union.{u_1}
dyadic_union.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n l : ℕ} {x : X} (hx : x ∈ setA l k n) : ∃ i, x ∈ i ∧ ↑i ⊆ setA l k nLemma 5.2.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕlℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {xX: XType u_1} (hxx ∈ setA l k n: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.setAsetA.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l k n : ℕ) : Set XThe set `A(λ, k, n)`, defined in (5.1.26).lℕkℕnℕ) : ∃ iGrid X, xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.iGrid X∧And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be constructed and destructed like a pair: if `ha : a` and `hb : b` then `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`. Conventions for notations in identifiers: * The recommended spelling of `∧` in identifiers is `and`.↑iGrid X⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.setAsetA.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l k n : ℕ) : Set XThe set `A(λ, k, n)`, defined in (5.1.26).lℕkℕnℕtheorem dyadic_union.{u_1}
dyadic_union.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n l : ℕ} {x : X} (hx : x ∈ setA l k n) : ∃ i, x ∈ i ∧ ↑i ⊆ setA l k nLemma 5.2.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕlℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {xX: XType u_1} (hxx ∈ setA l k n: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.setAsetA.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l k n : ℕ) : Set XThe set `A(λ, k, n)`, defined in (5.1.26).lℕkℕnℕ) : ∃ iGrid X, xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.iGrid X∧And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be constructed and destructed like a pair: if `ha : a` and `hb : b` then `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`. Conventions for notations in identifiers: * The recommended spelling of `∧` in identifiers is `and`.↑iGrid X⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.setAsetA.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l k n : ℕ) : Set XThe set `A(λ, k, n)`, defined in (5.1.26).lℕkℕnℕLemma 5.2.4
Proof. Fix k,n,\lambda,x as in the lemma such that
x\in A(\lambda,k,n). Let \mathcal{M} be the set of dyadic cubes
\scI(\fp) with \fp in \mathfrak{M}(k,n) and x\in \scI(\fp). By
definition of A(\lambda,k,n), the cardinality of \mathcal{M} is at least
1+\lambda 2^{n+1}. Let I be a cube of smallest scale in
\mathcal{M}. Then I is contained in all cubes of \mathcal{M}. It
follows that I\subset A(\lambda,k,n).
-
john_nirenberg[complete]
Uses Lemma 1.36, Lemma 1.37, and Lemma 1.38.
For all integers k,n,\lambda\ge 0, we have
\mu(A(\lambda,k,n)) \le 2^{k+1-\lambda}\mu(G).
Lean code for Lemma1.39●1 theorem
Associated Lean declarations
-
john_nirenberg[complete]
-
john_nirenberg[complete]
-
theoremdefined in Carleson/Discrete/ExceptionalSet.leancomplete
theorem john_nirenberg.{u_1}
john_nirenberg.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n l : ℕ} : MeasureTheory.volume (setA l k n) ≤ 2 ^ (↑k + 1 - ↑l) * MeasureTheory.volume GLemma 5.2.5{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕlℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(setAsetA.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l k n : ℕ) : Set XThe set `A(λ, k, n)`, defined in (5.1.26).lℕkℕnℕ) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑kℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1 -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑lℕ)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet Xtheorem john_nirenberg.{u_1}
john_nirenberg.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n l : ℕ} : MeasureTheory.volume (setA l k n) ≤ 2 ^ (↑k + 1 - ↑l) * MeasureTheory.volume GLemma 5.2.5{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕlℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(setAsetA.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l k n : ℕ) : Set XThe set `A(λ, k, n)`, defined in (5.1.26).lℕkℕnℕ) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑kℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1 -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑lℕ)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet XLemma 5.2.5
Proof. Fix k,n as in the lemma and suppress notation to write
A(\lambda) for A(\lambda,k,n). We prove the lemma by induction on
\lambda. For \lambda=0, we use that A(\lambda) by definition of
\mathfrak{M}(k,n) is contained in the union of elements in
\mathcal{C}(G,k). Lemma 1.36 then completes the base of the induction.
Now assume that the statement of Lemma 1.39 is proven for some integer
\lambda\ge 0. The set A(\lambda+1) is contained in the set
A(\lambda). Let \mathcal{M} be the set of dyadic cubes which are a
subset of A(\lambda). By Lemma 1.38, the union of \mathcal{M} is
A(\lambda). Let \mathcal{M}^* be the set of maximal dyadic cubes in
\mathcal{M}.
Let x\in A(\lambda+1) and L\in \mathcal{M}^* such that x\in L. Then
by the dyadic property dyadicproperty
\sum_{\fp \in {\mathfrak{M}}(k,n)} \mathbf{1}_{\scI(\fp)}(x) =
\sum_{\fp \in {\mathfrak{M}}(k,n):\scI(\fp) \subset L} \mathbf{1}_{\scI(\fp)}(x) +
\sum_{\fp \in {\mathfrak{M}}(k,n):L \subsetneq \scI(\fp)} \mathbf{1}_{\scI(\fp)}(x).
We now show
\sum_{\fp \in {\mathfrak{M}}(k,n):\scI(\fp) \subset L} \mathbf{1}_{\scI(\fp)}(x)\ge 2^{n+1}.
The left-hand side of the previous display is strictly greater than
(\lambda+1)2^{n+1}. If L is the top cube the second sum is zero and the
claim follows immediately. Otherwise consider the inclusion-minimal cube
\hat{L} with L\subsetneq\hat{L}; all tiles in the second sum satisfy
\hat{L}\subset\fp, so the second sum is constant for all x\in\hat{L}. By
maximality of L, the second sum is at most \lambda 2^{n+1} somewhere on
\hat{L}, thus on all of \hat{L} and consequently also at x.
Rearranging the inequality yields the claim.
By Lemma 1.37, we have
\sum_{\fp \in {\mathfrak{M}}(k,n):\scI(\fp) \subset L} \mu({E_1}(\fp)) \leq \mu(L).
Multiplying by 2^n and applying ebardense, we obtain
\sum_{\fp \in {\mathfrak{M}}(k,n):\scI(\fp) \subset L} \mu(\scI(\fp)) \leq 2^n \mu(L).
We then have with the previous two estimates
2^{n+1}\mu(A(\lambda+1)\cap L) =
\int_{A(\lambda+1)\cap L} 2^{n+1} d\mu
\le
\int \sum_{\fp \in {\mathfrak{M}}(k,n):\scI(\fp) \subset L} \mathbf{1}_{\scI(\fp)} d\mu
\le 2^n \mu(L).
Hence
2\mu(A(\lambda+1))=2\sum_{L\in \mathcal{M}^*}
\mu(A(\lambda+1)\cap L)\le
\sum_{L\in \mathcal{M}^*}\mu( L)= \mu(A(\lambda)).
Using the induction hypothesis, this proves alambdameasure for
\lambda+1 and completes the proof of the lemma.
-
second_exception[complete]
Uses Lemma 1.39.
We have
\mu(G_2)\le 2^{-2} \mu(G).
Lean code for Lemma1.40●1 theorem
Associated Lean declarations
-
second_exception[complete]
-
second_exception[complete]
-
theoremdefined in Carleson/Discrete/ExceptionalSet.leancomplete
theorem second_exception.{u_1}
second_exception.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : MeasureTheory.volume G₂ ≤ 2 ^ (-2) * MeasureTheory.volume GLemma 5.2.6{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.G₂G₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe set `G₂`, defined in (5.1.27).≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(-2) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet Xtheorem second_exception.{u_1}
second_exception.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : MeasureTheory.volume G₂ ≤ 2 ^ (-2) * MeasureTheory.volume GLemma 5.2.6{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.G₂G₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe set `G₂`, defined in (5.1.27).≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(-2) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet XLemma 5.2.6
Proof. We use Lemma 1.39 and sum twice a geometric series to obtain
\sum_{0\le k}\sum_{k\le n}
\mu(A(2n+6,k,n))\le \sum_{0\le k}\sum_{k\le n} 2^{k-5-2n}\mu(G)
\le \sum_{0\le k} 2^{-k-3}\mu(G)\le 2^{-2}\mu(G).
This proves the lemma.
We turn to the set G_3.
Uses Lemma 1.39.
We have
\sum_{\mathfrak{m} \in \mathfrak{M}(k,n)} \mu(\scI(\mathfrak{m}))\le 2^{n+k+3}\mu(G).
Lean code for Lemma1.41●1 theorem
Associated Lean declarations
-
top_tiles[complete]
-
top_tiles[complete]
-
theoremdefined in Carleson/Discrete/ExceptionalSet.leancomplete
theorem top_tiles.{u_1}
top_tiles.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} : ∑ m with m ∈ 𝔐 k n, MeasureTheory.volume ↑(𝓘 m) ≤ 2 ^ (n + k + 3) * MeasureTheory.volume GLemma 5.2.7{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : ∑ m𝔓 Xwith m𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔐𝔐.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The definition `𝔐(k, n)` given in (5.1.4) and (5.1.5).kℕnℕ, MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xm𝔓 X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.kℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet Xtheorem top_tiles.{u_1}
top_tiles.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} : ∑ m with m ∈ 𝔐 k n, MeasureTheory.volume ↑(𝓘 m) ≤ 2 ^ (n + k + 3) * MeasureTheory.volume GLemma 5.2.7{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : ∑ m𝔓 Xwith m𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔐𝔐.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The definition `𝔐(k, n)` given in (5.1.4) and (5.1.5).kℕnℕ, MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xm𝔓 X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.kℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet XLemma 5.2.7
Proof. We write the left-hand side of eq-musum
\int \sum_{\mathfrak{m} \in \mathfrak{M}(k,n)} \mathbf{1}_{\scI(\mathfrak{m})}(x) \, d\mu(x) \le
2^{n+1} \sum_{\lambda=0}^{|\mathfrak{M}|}\mu(A(\lambda, k,n)).
Using Lemma 1.39 and then summing a geometric series, we estimate this by
\le
2^{n+1}\sum_{\lambda=0}^{|\mathfrak{M}|}
2^{k+1-\lambda}\mu(G)
\le
2^{n+1}2^{k+2}\mu(G).
This proves the lemma.
-
tree_count[complete]
Let k,n,j\ge 0. We have for every x\in X
\sum_{\fu\in \fU_1(k,n,j)} \mathbf{1}_{\scI(\fu)}(x)
\le 2^{-j}
2^{9a} \sum_{\mathfrak{m}\in \mathfrak{M}(k,n)}
\mathbf{1}_{\scI(\mathfrak{m})}(x).
Lean code for Lemma1.42●1 theorem
Associated Lean declarations
-
tree_count[complete]
-
tree_count[complete]
-
theoremdefined in Carleson/Discrete/ExceptionalSet.leancomplete
theorem tree_count.{u_1}
tree_count.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {x : X} : ↑(stackSize (𝔘₁ k n j) x) ≤ 2 ^ (9 * ↑a - ↑j) * ↑(stackSize (𝔐 k n) x)Lemma 5.2.8{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {xX: XType u_1} : ↑(stackSizestackSize.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (C : Set (𝔓 X)) (x : X) : ℕThe number of tiles `p` in `s` whose underlying cube `𝓘 p` contains `x`.(𝔘₁𝔘₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₁(k, n, j)` of `ℭ₁(k, n, j)`, given in (5.1.14).kℕnℕjℕ) xX) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).9 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑aℕ-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑jℕ)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(stackSizestackSize.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (C : Set (𝔓 X)) (x : X) : ℕThe number of tiles `p` in `s` whose underlying cube `𝓘 p` contains `x`.(𝔐𝔐.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The definition `𝔐(k, n)` given in (5.1.4) and (5.1.5).kℕnℕ) xX)theorem tree_count.{u_1}
tree_count.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {x : X} : ↑(stackSize (𝔘₁ k n j) x) ≤ 2 ^ (9 * ↑a - ↑j) * ↑(stackSize (𝔐 k n) x)Lemma 5.2.8{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {xX: XType u_1} : ↑(stackSizestackSize.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (C : Set (𝔓 X)) (x : X) : ℕThe number of tiles `p` in `s` whose underlying cube `𝓘 p` contains `x`.(𝔘₁𝔘₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₁(k, n, j)` of `ℭ₁(k, n, j)`, given in (5.1.14).kℕnℕjℕ) xX) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).9 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑aℕ-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑jℕ)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(stackSizestackSize.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (C : Set (𝔓 X)) (x : X) : ℕThe number of tiles `p` in `s` whose underlying cube `𝓘 p` contains `x`.(𝔐𝔐.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The definition `𝔐(k, n)` given in (5.1.4) and (5.1.5).kℕnℕ) xX)Lemma 5.2.8
Proof. Let x\in X. For each \fu\in \fU_1(k,n,j) with
x\in \scI(\fu), as \fu \in \fC_1(k,n,j), there are at least 2^{j}
elements \mathfrak{m}\in \mathfrak{M}(k,n) with
100\fu \lesssim \mathfrak{m} and in particular x\in \scI(\mathfrak{m}).
Hence
\mathbf{1}_{\scI(\fu)}(x)
\le 2^{-j}\sum_{\mathfrak{m} \in \mathfrak{M}(k,n): 100\fu\lesssim \mathfrak{m}} \mathbf{1}_{\scI(\mathfrak{m})}(x).
Conversely, for each \mathfrak{m}\in \mathfrak{M}(k,n) with
x\in \scI(\mathfrak{m}), let \fU(\mathfrak{m}) be the set of
\fu\in \fU_1(k,n,j) with x\in \scI(\fu) and
100\fu \lesssim \mathfrak{m}. Summing the previous bound over \fu and
counting the pairs (\fu,\mathfrak{m}) with
100\fu \lesssim \mathfrak{m} differently gives
\sum_{\fu\in \fU_1(k,n,j)} \mathbf{1}_{\scI(\fu)}(x)
\le 2^{-j}\sum_{\mathfrak{m} \in \mathfrak{M}(k,n)}
\sum_{\fu \in \fU(\mathfrak{m})} \mathbf{1}_{\scI(\mathfrak{m})}(x).
We estimate the number of elements in \fU(\mathfrak{m}). Let
\fu \in \fU(\mathfrak{m}). Then by definition of \fU(\mathfrak{m})
d_{\fu}(\fcc(\fu),\fcc(\mathfrak{m}))\le 100.
If \fu' is a further element in \fU(\mathfrak{m}) with
\fu\neq \fu', then
\fcc(\mathfrak{m})
\in B_{\fu}(\fcc(\fu),100)\cap B_{\fu'}(\fcc(\fu'),100).
By the last display and definition of \fU_1(k,n,j), none of
\scI(\fu), \scI(\fu') is strictly contained in the other. As both
contain x, we have \scI(\fu)=\scI(\fu'). We then have
d_{\fu}=d_{\fu'}.
By eq-freq-comp-ball, the balls B_{\fu}(\fcc(\fu),0.2) and
B_{\fu}(\fcc(\fu'),0.2) are contained respectively in \fc(\fu) and
\fc(\fu') and thus are disjoint by eq-dis-freq-cover. By dby2 and the
triangle inequality, both balls are contained in
B_{\fu}(\fcc(\mathfrak{m}), 100.2).
By thirddb applied nine times, there is a collection of at most 2^{9a}
balls of radius 0.2 with respect to the metric d_{\fu} which cover the
ball B_{\fu}(\fcc(\mathfrak{m}),100.2). Let B' be a ball in this cover.
As the center of B' can be in at most one of the disjoint balls
B_{\fu}(\fcc(\fu),0.2) and B_{\fu}(\fcc(\fu'),0.2), the ball B' can
contain at most one of the points \fcc(\fu), \fcc(\fu').
Hence the image of \fU(\mathfrak{m}) under \fcc has at most 2^{9a}
elements; since \fcc is injective on \fU(\mathfrak{m}), the same is true
of \fU(\mathfrak{m}). Inserting this into usumbymsum proves the lemma.
-
boundary_exception[complete]
Let \mathcal{L}(\fu) be as defined in eq-L-def. We have for each
\fu\in \fU_1(k,n,l),
\mu(\bigcup_{I\in \mathcal{L}(\fu)} I)
\le D^{1-\kappa Z(n+1)}
\mu(\scI(\mathfrak{u})).
Lean code for Lemma1.43●1 theorem
Associated Lean declarations
-
boundary_exception[complete]
-
boundary_exception[complete]
-
theoremdefined in Carleson/Discrete/ExceptionalSet.leancomplete
theorem boundary_exception.{u_1}
boundary_exception.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {u : 𝔓 X} : MeasureTheory.volume (⋃ i ∈ 𝓛 n u, ↑i) ≤ ↑(C5_2_9 X n) * MeasureTheory.volume ↑(𝓘 u)Lemma 5.2.9{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(⋃ iGrid X∈ 𝓛𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) (u : 𝔓 X) : Set (Grid X)The subset `𝓛(u)` of `Grid X`, given near (5.1.20). Note: It seems to also depend on `n`.nℕu𝔓 X, ↑iGrid X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C5_2_9C5_2_9.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (n : ℕ) : NNRealThe constant in Lemma 5.2.9, with value `D ^ (1 - κ * Z * (n + 1))`XType u_1nℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X)theorem boundary_exception.{u_1}
boundary_exception.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {u : 𝔓 X} : MeasureTheory.volume (⋃ i ∈ 𝓛 n u, ↑i) ≤ ↑(C5_2_9 X n) * MeasureTheory.volume ↑(𝓘 u)Lemma 5.2.9{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(⋃ iGrid X∈ 𝓛𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) (u : 𝔓 X) : Set (Grid X)The subset `𝓛(u)` of `Grid X`, given near (5.1.20). Note: It seems to also depend on `n`.nℕu𝔓 X, ↑iGrid X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C5_2_9C5_2_9.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (n : ℕ) : NNRealThe constant in Lemma 5.2.9, with value `D ^ (1 - κ * Z * (n + 1))`XType u_1nℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X)Lemma 5.2.9
Proof. Let \fu\in \fU_1(k,n,l). Let I \in \mathcal{L}(\fu). Then we
have s(I) = \ps(\fu) - Z(n+1) - 1 and I \subset \scI(\fu) and
B(c(I), 8D^{s(I)}) \not \subset \scI(\fu). By eq-vol-sp-cube, the set
I is contained in B(c(I), 4D^{s(I)}). By the triangle inequality, the
set I is contained in
X(\fu):=\{x \in \scI(\fu) \, : \, \rho(x, X \setminus \scI(\fu)) \leq 12 D^{\ps(\fu) - Z(n+1)-1}\}.
By the small boundary property eq-small-boundary, noting that
12D^{\ps(\fu) - Z(n+1) - 1} = 12D^{s(I)} > D^{-S}, we have
\mu(X(\fu)) \le
2\cdot(12 D^{-Z(n+1)-1})^\kappa
\mu(\scI(\mathfrak{u})).
Using \kappa<1 and D \ge 12, this proves the lemma.
-
third_exception[complete]
Uses Lemma 1.42, Lemma 1.43, and Lemma 1.41.
We have
\mu(G_3)\le 2^{-4} \mu(G).
Lean code for Lemma1.44●1 theorem
Associated Lean declarations
-
third_exception[complete]
-
third_exception[complete]
-
theoremdefined in Carleson/Discrete/ExceptionalSet.leancomplete
theorem third_exception.{u_1}
third_exception.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : MeasureTheory.volume G₃ ≤ 2 ^ (-4) * MeasureTheory.volume GLemma 5.2.10{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.G₃G₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe set `G₃`, defined in (5.1.28).≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(-4) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet Xtheorem third_exception.{u_1}
third_exception.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : MeasureTheory.volume G₃ ≤ 2 ^ (-4) * MeasureTheory.volume GLemma 5.2.10{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.G₃G₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set XThe set `G₃`, defined in (5.1.28).≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(-4) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.GSet XLemma 5.2.10
Proof. As each \fp\in \fL_4(k,n,j) is contained in \cup\mathcal{L}(\fu)
for some \fu\in \fU_1(k,n,l), we have
\mu(\bigcup_{\fp \in \fL_4 (k,n,j)}\scI(\fp))
\le \sum_{\fu\in \fU_1(k,n,j)}
\mu(\bigcup_{I \in \mathcal{L} (\fu)}I).
Using Lemma 1.43 and then Lemma 1.42, we estimate this further by
\le \sum_{\fu\in \fU_1(k,n,j)}
D^{1-\kappa Z(n+1)}
\mu(\scI(\mathfrak{u}))
\le 2^{100a^2+9a+1-j} \sum_{\mathfrak{m}\in \mathfrak{M}(k,n)}
D^{-\kappa Z(n+1)}
\mu(\scI(\mathfrak{m})).
Using Lemma 1.41, we estimate this by
\le
2^{100a^2 + 9a + 1-j} D^{-\kappa Z(n+1)}
2^{n+k+3}\mu(G).
Now we estimate G_3 defined in defineg3 by
\mu(G_3)\le \sum_{k\ge 0}\, \sum_{n \geq k}\,
\sum_{0\le j\le 2n+3}
\mu(\bigcup_{\fp \in \fL_4 (k,n,j)}
\scI(\fp))
\le \sum_{k\ge 0}\, \sum_{n \geq k}\,
\sum_{0\le j\le 2n+3}
2^{100a^2 + 9a + 3 + n + k -j} D^{-\kappa Z(n+1)}\mu(G).
Summing geometric series, using that D^{\kappa Z}\ge 8 by defineD,
definekappa and defineZ, we estimate this by
\le \sum_{k\ge 0}\, \sum_{n \geq k}\,
2^{100a^2 + 9a + 4 + n + k} D^{-\kappa Z(n+1)}\mu(G)
= \sum_{k\ge 0} 2^{100a^2 + 9a + 4 + 2k} D^{-\kappa Z(k+1)} \sum_{n \geq k}\,
2^{n - k} D^{-\kappa Z(n-k)}\mu(G)
\le \sum_{k\ge 0} 2^{100a^2 + 9a + 5 + 2k} D^{-\kappa Z(k+1)}\mu(G)
\le 2^{100a^2 + 9a + 6} D^{-\kappa Z}\mu(G).
Using D = 2^{100a^2} and a \ge 4 and \kappa Z \ge 2 by defineD and
definekappa proves the lemma.
Adding up the bounds in Lemmas Lemma 1.35, Lemma 1.40, and Lemma 1.44 proves Lemma 1.32.
1.5.3. Auxiliary lemmas
Before proving Lemma 1.33 and Lemma 1.34, we collect some useful
properties of \lesssim.
If n\fp \lesssim m\fp' and n' \ge n and m \ge m' then
n'\fp \lesssim m'\fp'.
Lean code for Lemma1.45●1 theorem
Associated Lean declarations
-
smul_mono[complete]
-
smul_mono[complete]
-
theoremdefined in Carleson/TileStructure.leancomplete
theorem smul_mono.{u_1}
smul_mono.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} {m m' n n' : ℝ} (hp : smul n p ≤ smul m p') (hm : m' ≤ m) (hn : n ≤ n') : smul n' p ≤ smul m' p'Lemma 5.3.1{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {mℝm'ℝnℝn'ℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (hpsmul n p ≤ smul m p': smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.nℝp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.mℝp'𝔓 X) (hmm' ≤ m: m'ℝ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.mℝ) (hnn ≤ n': nℝ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.n'ℝ) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.n'ℝp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.m'ℝp'𝔓 Xtheorem smul_mono.{u_1}
smul_mono.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} {m m' n n' : ℝ} (hp : smul n p ≤ smul m p') (hm : m' ≤ m) (hn : n ≤ n') : smul n' p ≤ smul m' p'Lemma 5.3.1{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {mℝm'ℝnℝn'ℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (hpsmul n p ≤ smul m p': smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.nℝp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.mℝp'𝔓 X) (hmm' ≤ m: m'ℝ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.mℝ) (hnn ≤ n': nℝ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.n'ℝ) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.n'ℝp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.m'ℝp'𝔓 XLemma 5.3.1
Proof. This follows immediately from the definition wiggleorder of
\lesssim and the two inclusions
B_{\fp}(\fcc(\fp), n) \subset B_{\fp}(\fcc(\fp), n') and
B_{\fp'}(\fcc(\fp'), m') \subset B_{\fp'}(\fcc(\fp'), m).
-
smul_C2_1_2[complete]
Uses Lemma 1.11.
Let n, m \ge 1 and k > 0. If \fp, \fp' \in \fP with
\scI(\fp) \ne \scI(\fp') and
n \fp \lesssim k \fp'
then
(n + 2^{-95 a} m) \fp \lesssim m\fp'.
Lean code for Lemma1.46●1 theorem
Associated Lean declarations
-
smul_C2_1_2[complete]
-
smul_C2_1_2[complete]
-
theoremdefined in Carleson/TileStructure.leancomplete
theorem smul_C2_1_2.{u_1}
smul_C2_1_2.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} (m : ℝ) {n k : ℝ} (hk : 0 < k) (hp : 𝓘 p ≠ 𝓘 p') (hl : smul n p ≤ smul k p') : smul (n + C2_1_2 a * m) p ≤ smul m p'Lemma 5.3.2 (generalizing `1` to `k > 0`){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (mℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.) {nℝkℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (hk0 < k: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.kℝ) (hp𝓘 p ≠ 𝓘 p': 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) (hlsmul n p ≤ smul k p': smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.nℝp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.kℝp'𝔓 X) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.nℝ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.C2_1_2C2_1_2 (a : ℕ) : ℝThe constant appearing in Lemma 2.1.2, `2 ^ {-95a}`.aℕ*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.mℝ)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.mℝp'𝔓 Xtheorem smul_C2_1_2.{u_1}
smul_C2_1_2.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} (m : ℝ) {n k : ℝ} (hk : 0 < k) (hp : 𝓘 p ≠ 𝓘 p') (hl : smul n p ≤ smul k p') : smul (n + C2_1_2 a * m) p ≤ smul m p'Lemma 5.3.2 (generalizing `1` to `k > 0`){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (mℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.) {nℝkℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (hk0 < k: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.kℝ) (hp𝓘 p ≠ 𝓘 p': 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) (hlsmul n p ≤ smul k p': smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.nℝp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.kℝp'𝔓 X) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.nℝ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.C2_1_2C2_1_2 (a : ℕ) : ℝThe constant appearing in Lemma 2.1.2, `2 ^ {-95a}`.aℕ*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.mℝ)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.mℝp'𝔓 XLemma 5.3.2 (generalizing `1` to `k > 0`)
Proof. The assumption eq-wiggle1 together with the definition wiggleorder
of \lesssim implies that \scI(\fp) \subsetneq \scI(\fp'). Let
\mfa \in B_{\fp'}(\fcc(\fp'), m). Then we have by the triangle inequality
d_{\fp}(\fcc(\fp), \mfa) \le d_{\fp}(\fcc(\fp), \fcc(\fp')) + d_{\fp}(\fcc(\fp'), \mfa).
The first summand is bounded by n since
\fcc(\fp') \in B_{\fp'}(\fcc(\fp'), k) \subset B_{\fp}(\fcc(\fp), n),
using wiggleorder. For the second summand we use
Lemma 1.11 to show that the sum is estimated by
n + 2^{-95a} d_{\fp'}(\fcc(\fp'), \mfa) < n + 2^{-95a} m.
Thus
B_{\fp'}(\fcc(\fp'),m) \subset B_{\fp}(\fcc(\fp),n + 2^{-95a}m). Combined
with \scI(\fp) \subset \scI(\fp'), this yields eq-wiggle2.
-
wiggle_order_11_10[complete] -
wiggle_order_100[complete] -
wiggle_order_500[complete]
Uses Lemma 1.45 and Lemma 1.46.
The following implications hold for all \fq, \fq' \in \fP:
\fq \le \fq' \ \text{and} \ \lambda \ge 1.1 \implies \lambda \fq \lesssim \lambda \fq',
10\fq \lesssim \fq' \ \text{and} \ \scI(\fq) \ne \scI(\fq') \implies 100 \fq \lesssim 100 \fq',
2\fq \lesssim \fq' \ \text{and} \ \scI(\fq) \ne \scI(\fq') \implies 4 \fq \lesssim 500 \fq'.
Lean code for Lemma1.47●3 theorems
Associated Lean declarations
-
wiggle_order_11_10[complete]
-
wiggle_order_100[complete]
-
wiggle_order_500[complete]
-
wiggle_order_11_10[complete] -
wiggle_order_100[complete] -
wiggle_order_500[complete]
-
theoremdefined in Carleson/TileStructure.leancomplete
theorem wiggle_order_11_10.{u_1}
wiggle_order_11_10.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} {n : ℝ} (hp : p ≤ p') (hn : C5_3_3 a ≤ n) : smul n p ≤ smul n p'Lemma 5.3.3, Equation (5.3.3){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {nℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (hpp ≤ p': p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.p'𝔓 X) (hnC5_3_3 a ≤ n: C5_3_3C5_3_3 (a : ℕ) : ℝThe constraint on `λ` in the first part of Lemma 5.3.3.aℕ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.nℝ) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.nℝp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.nℝp'𝔓 Xtheorem wiggle_order_11_10.{u_1}
wiggle_order_11_10.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} {n : ℝ} (hp : p ≤ p') (hn : C5_3_3 a ≤ n) : smul n p ≤ smul n p'Lemma 5.3.3, Equation (5.3.3){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {nℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (hpp ≤ p': p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.p'𝔓 X) (hnC5_3_3 a ≤ n: C5_3_3C5_3_3 (a : ℕ) : ℝThe constraint on `λ` in the first part of Lemma 5.3.3.aℕ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.nℝ) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.nℝp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.nℝp'𝔓 XLemma 5.3.3, Equation (5.3.3)
-
theoremdefined in Carleson/TileStructure.leancomplete
theorem wiggle_order_100.{u_1}
wiggle_order_100.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} (hp : smul 10 p ≤ smul 1 p') (hn : 𝓘 p ≠ 𝓘 p') : smul 100 p ≤ smul 100 p'Lemma 5.3.3, Equation (5.3.4){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hpsmul 10 p ≤ smul 1 p': smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.10 p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.1 p'𝔓 X) (hn𝓘 p ≠ 𝓘 p': 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.100 p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.100 p'𝔓 Xtheorem wiggle_order_100.{u_1}
wiggle_order_100.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} (hp : smul 10 p ≤ smul 1 p') (hn : 𝓘 p ≠ 𝓘 p') : smul 100 p ≤ smul 100 p'Lemma 5.3.3, Equation (5.3.4){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hpsmul 10 p ≤ smul 1 p': smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.10 p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.1 p'𝔓 X) (hn𝓘 p ≠ 𝓘 p': 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.100 p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.100 p'𝔓 XLemma 5.3.3, Equation (5.3.4)
-
theoremdefined in Carleson/TileStructure.leancomplete
theorem wiggle_order_500.{u_1}
wiggle_order_500.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} (hp : smul 2 p ≤ smul 1 p') (hn : 𝓘 p ≠ 𝓘 p') : smul 4 p ≤ smul 500 p'Lemma 5.3.3, Equation (5.3.5){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hpsmul 2 p ≤ smul 1 p': smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.2 p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.1 p'𝔓 X) (hn𝓘 p ≠ 𝓘 p': 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.4 p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.500 p'𝔓 Xtheorem wiggle_order_500.{u_1}
wiggle_order_500.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} (hp : smul 2 p ≤ smul 1 p') (hn : 𝓘 p ≠ 𝓘 p') : smul 4 p ≤ smul 500 p'Lemma 5.3.3, Equation (5.3.5){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hpsmul 2 p ≤ smul 1 p': smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.2 p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.1 p'𝔓 X) (hn𝓘 p ≠ 𝓘 p': 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.4 p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.500 p'𝔓 XLemma 5.3.3, Equation (5.3.5)
Proof. eq-sc2 and eq-sc3 are easy consequences of Lemma 1.45,
Lemma 1.46 and the fact that a \ge 4. For eq-sc1, if
\scI(\fq) = \scI(\fq') then we get \fq = \fq' by eq-dis-freq-cover
and straightorder. If \scI(\fq) \ne \scI(\fq'), then from
straightorder, wiggleorder and eq-freq-comp-ball it follows that
\fq \lesssim 0.2\fq', and eq-sc1 follows from an easy calculation using
Lemma 1.46.
We call a collection \mathfrak{A} of tiles convex if
\fp \le \fp' \le \fp'' \ \text{and} \ \fp, \fp'' \in \mathfrak{A} \implies \fp' \in \mathfrak{A}.
-
ordConnected_tilesAt[complete]
For each k, the collection \fP(k) is convex.
Lean code for Lemma1.48●1 theorem
Associated Lean declarations
-
ordConnected_tilesAt[complete]
-
ordConnected_tilesAt[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem ordConnected_tilesAt.{u_1}
ordConnected_tilesAt.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k : ℕ} : (TilesAt k).OrdConnectedLemma 5.3.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (TilesAtTilesAt.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k : ℕ) : Set (𝔓 X)The definition `𝔓(k)` given in (5.1.3).kℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.theorem ordConnected_tilesAt.{u_1}
ordConnected_tilesAt.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k : ℕ} : (TilesAt k).OrdConnectedLemma 5.3.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (TilesAtTilesAt.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k : ℕ) : Set (𝔓 X)The definition `𝔓(k)` given in (5.1.3).kℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.Lemma 5.3.4
Proof. Suppose that \fp \le \fp' \le \fp'' and
\fp, \fp'' \in \fP(k). By eq-defPk we have
\scI(\fp), \scI(\fp'') \in \mathcal{C}(G,k), so there exists by muhj1
some J \in \mathcal{D} with
\scI(\fp') \subset \scI(\fp'') \subset J
and \mu(G \cap J) > 2^{-k-1} \mu(J). Thus muhj1 holds for
\scI(\fp'). On the other hand, by muhj2, there exists no
J \in \mathcal{D} with \scI(\fp) \subset J and
\mu(G \cap J) > 2^{-k} \mu(J). Since
\scI(\fp) \subset \scI(\fp'), this implies that muhj2 holds for
\scI(\fp'). Hence \scI(\fp') \in \mathcal{C}(G,k), and therefore by
eq-defPk \fp' \in \fP(k).
-
ordConnected_C[complete]
Uses Lemma 1.48.
For each k,n, the collection \fC(k,n) is convex.
Lean code for Lemma1.49●1 theorem
Associated Lean declarations
-
ordConnected_C[complete]
-
ordConnected_C[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem ordConnected_C.{u_1}
ordConnected_C.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} : (ℭ k n).OrdConnectedLemma 5.3.5{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭℭ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The partition `ℭ(k, n)` of `𝔓(k)` by density, given in (5.1.7).kℕnℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.theorem ordConnected_C.{u_1}
ordConnected_C.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} : (ℭ k n).OrdConnectedLemma 5.3.5{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭℭ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The partition `ℭ(k, n)` of `𝔓(k)` by density, given in (5.1.7).kℕnℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.Lemma 5.3.5
Proof. Let \fp \le \fp' \le \fp'' with
\fp, \fp'' \in \fC(k,n). Then, in particular,
\fp, \fp'' \in \fP(k), so, by Lemma 1.48, \fp' \in \fP(k). Next, we show
that if \fq \le \fq' \in \fP(k) then
\dens'_k(\{\fq\}) \ge \dens_k'(\{\fq'\}). If
\fp \in \fP(k) and \lambda \ge 2 with
\lambda \fq' \lesssim \lambda \fp, then it follows from
\fq \le \fq', eq-sc1 of Lemma 1.47 and transitivity of
\lesssim that \lambda \fq \lesssim \lambda \fp. Thus the supremum in the
definition eq-densdef of \dens_k'(\{\fq\}) is over a superset of the set
the supremum in the definition of \dens_k'(\{\fq'\}) is taken over, which
shows \dens'_k(\{\fq\}) \ge \dens_k'(\{\fq'\}). From
\fp' \le \fp'', \fp'' \in \fC(k,n) and def-cnk it then follows that
2^{4a}2^{-n} < \dens_k'(\{\fp''\}) \le \dens_k'(\{\fp'\}).
Similarly, it follows from \fp \le \fp', \fp \in \fC(k,n) and def-cnk
that
\dens_k'(\{\fp'\}) \le \dens_k'(\{\fp\}) \le 2^{4a}2^{-n+1}.
Thus \fp' \in \fC(k,n).
-
ordConnected_C1[complete]
Uses Lemma 1.49.
For each k,n,j, the collection \fC_1(k,n,j) is convex.
Lean code for Lemma1.50●1 theorem
Associated Lean declarations
-
ordConnected_C1[complete]
-
ordConnected_C1[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem ordConnected_C1.{u_1}
ordConnected_C1.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : (ℭ₁ k n j).OrdConnectedLemma 5.3.6{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭ₁ℭ₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₁(k, n, j)` of `ℭ(k, n)`, given in (5.1.9). Together with `𝔏₀(k, n)` this forms a partition.kℕnℕjℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.theorem ordConnected_C1.{u_1}
ordConnected_C1.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : (ℭ₁ k n j).OrdConnectedLemma 5.3.6{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭ₁ℭ₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₁(k, n, j)` of `ℭ(k, n)`, given in (5.1.9). Together with `𝔏₀(k, n)` this forms a partition.kℕnℕjℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.Lemma 5.3.6
Proof. Let \fp\le\fp'\le\fp'' with
\fp, \fp'' \in \fC_1(k,n,j). By Lemma 1.49 and the inclusion
\fC_1(k,n,j) \subset \fC(k,n), which holds by definition defcnkj, we have
\fp' \in \fC(k,n). By eq-sc1 and transitivity of \lesssim we have that
\fq \le \fq' and 100 \fq' \lesssim \mathfrak{m} imply
100 \fq \lesssim \mathfrak{m}. So, by defbfp,
\mathfrak{B}(\fp'') \subset \mathfrak{B}(\fp') \subset \mathfrak{B}(\fp).
Consequently, by defcnkj
2^j \le |\mathfrak{B}(\fp'')|\le |\mathfrak{B}(\fp')| \le |\mathfrak{B}(\fp)| < 2^{j+1},
thus \fp' \in \fC_1(k,n,j).
-
ordConnected_C2[complete]
Uses Lemma 1.50.
For each k,n,j, the collection \fC_2(k,n,j) is convex.
Lean code for Lemma1.51●1 theorem
Associated Lean declarations
-
ordConnected_C2[complete]
-
ordConnected_C2[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem ordConnected_C2.{u_1}
ordConnected_C2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : (ℭ₂ k n j).OrdConnectedLemma 5.3.7{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭ₂ℭ₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₂(k, n, j)` of `ℭ₁(k, n, j)`, given in (5.1.13).kℕnℕjℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.theorem ordConnected_C2.{u_1}
ordConnected_C2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : (ℭ₂ k n j).OrdConnectedLemma 5.3.7{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭ₂ℭ₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₂(k, n, j)` of `ℭ₁(k, n, j)`, given in (5.1.13).kℕnℕjℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.Lemma 5.3.7
Proof. Let \fp \le \fp' \le \fp'' with
\fp, \fp'' \in \fC_2(k,n,j). By eq-C2-def, we have
\fC_2(k,n,j) \subset \fC_1(k,n,j). Combined with Lemma 1.50, it follows
that \fp' \in \fC_1(k,n,j). If \fp=\fp' the statement is trivially true,
otherwise suppose that \fp' \notin \fC_2(k,n,j). By eq-C2-def, this
implies that there exists 0 \le l' \le Z(n+1) with
\fp' \in \fL_1(k,n,j,l'). By the definition eq-L1-def of
\fL_1(k,n,j,l'), this implies that \fp' is minimal with respect to
\le in
\fC_1(k,n,j) \setminus \bigcup_{l < l'} \fL_1(k,n,j,l). Since
\fp\le\fp' and \fp\in\fC_2(k,n,j), \fp=\fp', a contradiction.
-
ordConnected_C3[complete]
Uses Lemma 1.51.
For each k,n,j, the collection \fC_3(k,n,j) is convex.
Lean code for Lemma1.52●1 theorem
Associated Lean declarations
-
ordConnected_C3[complete]
-
ordConnected_C3[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem ordConnected_C3.{u_1}
ordConnected_C3.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : (ℭ₃ k n j).OrdConnectedLemma 5.3.8{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭ₃ℭ₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₃(k, n, j)` of `ℭ₂(k, n, j)`, given in (5.1.16).kℕnℕjℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.theorem ordConnected_C3.{u_1}
ordConnected_C3.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : (ℭ₃ k n j).OrdConnectedLemma 5.3.8{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭ₃ℭ₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₃(k, n, j)` of `ℭ₂(k, n, j)`, given in (5.1.16).kℕnℕjℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.Lemma 5.3.8
Proof. Let \fp \le \fp' \le \fp'' with
\fp, \fp'' \in \fC_3(k,n,j). By eq-C3-def and Lemma 1.51 it follows that
\fp' \in \fC_2(k,n,j). By eq-C3-def and eq-L2-def, there exists
\fu \in \fU_1(k,n,j) with 2\fp'' \lesssim \fu and
\scI(\fp'') \subsetneq \scI(\fu). From \fp' \le \fp'', eq-sc1 and
transitivity of \lesssim we then have
2\fp' \lesssim \fu and \scI(\fp') \subsetneq \scI(\fu), so
\fp' \in \fC_3(k,n,j).
-
ordConnected_C4[complete]
Uses Lemma 1.52.
For each k,n,j, the collection \fC_4(k,n,j) is convex.
Lean code for Lemma1.53●1 theorem
Associated Lean declarations
-
ordConnected_C4[complete]
-
ordConnected_C4[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem ordConnected_C4.{u_1}
ordConnected_C4.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : (ℭ₄ k n j).OrdConnectedLemma 5.3.9{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭ₄ℭ₄.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₄(k, n, j)` of `ℭ₃(k, n, j)`, given in (5.1.19).kℕnℕjℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.theorem ordConnected_C4.{u_1}
ordConnected_C4.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : (ℭ₄ k n j).OrdConnectedLemma 5.3.9{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭ₄ℭ₄.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₄(k, n, j)` of `ℭ₃(k, n, j)`, given in (5.1.19).kℕnℕjℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.Lemma 5.3.9
Proof. The proof is entirely analogous to Lemma 1.51, substituting
\fC_4 for \fC_2, \fC_3 for \fC_1 and
\fp'\le\fp'' for \fp\le\fp'.
-
ordConnected_C5[complete]
Uses Lemma 1.53.
For each k,n,j, the collection \fC_5(k,n,j) is convex.
Lean code for Lemma1.54●1 theorem
Associated Lean declarations
-
ordConnected_C5[complete]
-
ordConnected_C5[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem ordConnected_C5.{u_1}
ordConnected_C5.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : (ℭ₅ k n j).OrdConnectedLemma 5.3.10{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭ₅ℭ₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₅(k, n, j)` of `ℭ₄(k, n, j)`, given in (5.1.23).kℕnℕjℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.theorem ordConnected_C5.{u_1}
ordConnected_C5.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : (ℭ₅ k n j).OrdConnectedLemma 5.3.10{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : (ℭ₅ℭ₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₅(k, n, j)` of `ℭ₄(k, n, j)`, given in (5.1.23).kℕnℕjℕ).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.Lemma 5.3.10
Proof. Let \fp \le \fp' \le\fp'' with
\fp, \fp'' \in \fC_5(k,n,j). Then
\fp, \fp'' \in \fC_4(k,n,j) by defc5, and thus by Lemma 1.53
\fp' \in \fC_4(k,n,j). It suffices to show that if
\fp' \in \fL_4(k,n,j) then \fp \in \fL_4(k,n,j) by contraposition; this
is true by eq-L4-def and \fp\le\fp'.
-
dens1_le_dens'[complete]
We have for every k\ge 0 and \fP'\subset \fP(k)
\dens_1(\fP')\le \dens_k'(\fP').
Lean code for Lemma1.55●1 theorem
Associated Lean declarations
-
dens1_le_dens'[complete]
-
dens1_le_dens'[complete]
-
theoremdefined in Carleson/Discrete/Defs.leancomplete
theorem dens1_le_dens'.{u_1}
dens1_le_dens'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k : ℕ} {P : Set (𝔓 X)} (hP : P ⊆ TilesAt k) : dens₁ P ≤ dens' k PLemma 5.3.11{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {PSet (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (hPP ⊆ TilesAt k: PSet (𝔓 X)⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.TilesAtTilesAt.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k : ℕ) : Set (𝔓 X)The definition `𝔓(k)` given in (5.1.3).kℕ) : dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.PSet (𝔓 X)≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.dens'dens'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k : ℕ) (P' : Set (𝔓 X)) : ENNRealThe definition `dens'_k(𝔓')` given in (5.1.6).kℕPSet (𝔓 X)theorem dens1_le_dens'.{u_1}
dens1_le_dens'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k : ℕ} {P : Set (𝔓 X)} (hP : P ⊆ TilesAt k) : dens₁ P ≤ dens' k PLemma 5.3.11{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {PSet (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (hPP ⊆ TilesAt k: PSet (𝔓 X)⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.TilesAtTilesAt.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k : ℕ) : Set (𝔓 X)The definition `𝔓(k)` given in (5.1.3).kℕ) : dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.PSet (𝔓 X)≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.dens'dens'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k : ℕ) (P' : Set (𝔓 X)) : ENNRealThe definition `dens'_k(𝔓')` given in (5.1.6).kℕPSet (𝔓 X)Lemma 5.3.11
Proof. It suffices to show that for all \fp'\in \fP' and \lambda\ge 2
and \fp\in \fP(\fP') with \lambda \fp' \lesssim \lambda \fp we have
\frac{\mu({E}_2(\lambda, \fp))}{\mu(\scI(\fp))}
\le \sup_{\fp'' \in \fP(k): \lambda \fp' \lesssim \lambda \fp''}
\frac{\mu({E}_2(\lambda, \fp''))}{\mu(\scI(\fp''))}.
Let such \fp', \lambda, \fp be given. It suffices to show that
\fp\in \fP(k), that is, it satisfies muhj1 and muhj2.
We show muhj1. As \fp\in \fP(\fP'), there exists
\fp''\in \fP' with \scI(\fp')\subset \scI(\fp''). By assumption on
\fP', we have \fp''\in \fP(k) and there exists J\in \mathcal{D} with
\scI(\fp'')\subset J and
\mu(G\cap J)>2^{-k-1} \mu(J).
Then also \scI(\fp')\subset J, which proves muhj1 for \fp.
We show muhj2. Assume to get a contradiction that there exists
J\in \mathcal{D} with \scI(\fp)\subset J and
\mu(G\cap J)>2^{-k} \mu(J).
As \lambda\fp'\lesssim \lambda\fp, we have
\scI(\fp')\subset \scI(\fp), and therefore \scI(\fp')\subset J. This
contradicts \fp'\in \fP'\subset \fP(k). This proves muhj2 for \fp.
-
dens1_le[complete]
Uses Lemma 1.55.
For each set \mathfrak{A} \subset \mathfrak{C}(k,n), we have
\dens_1(\mathfrak{A}) \le 2^{4a}2^{-n+1}.
Lean code for Lemma1.56●1 theorem
Associated Lean declarations
-
dens1_le[complete]
-
dens1_le[complete]
-
theoremdefined in Carleson/Discrete/Defs.leancomplete
theorem dens1_le.{u_1}
dens1_le.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} {A : Set (𝔓 X)} (hA : A ⊆ ℭ k n) : dens₁ A ≤ 2 ^ (4 * ↑a - ↑n + 1)Lemma 5.3.12{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {ASet (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (hAA ⊆ ℭ k n: ASet (𝔓 X)⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.ℭℭ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The partition `ℭ(k, n)` of `𝔓(k)` by density, given in (5.1.7).kℕnℕ) : dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.ASet (𝔓 X)≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.4 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑aℕ-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.theorem dens1_le.{u_1}
dens1_le.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} {A : Set (𝔓 X)} (hA : A ⊆ ℭ k n) : dens₁ A ≤ 2 ^ (4 * ↑a - ↑n + 1)Lemma 5.3.12{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {ASet (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (hAA ⊆ ℭ k n: ASet (𝔓 X)⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.ℭℭ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The partition `ℭ(k, n)` of `𝔓(k)` by density, given in (5.1.7).kℕnℕ) : dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.ASet (𝔓 X)≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.4 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑aℕ-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Lemma 5.3.12
Proof. We have by Lemma 1.55 that
\dens_1(\mathfrak{A}) \le \dens_k'(\mathfrak{A}). Since
\mathfrak{A} \subset \fC(k,n), it follows from monotonicity of suprema and
the definition eq-densdef that
\dens_k'(\mathfrak{A}) \le \dens_k'(\fC(k,n)). By eq-densdef and def-cnk,
we have
\dens_k'(\fC(k,n)) = \sup_{\fp \in \fC(k,n)} \dens_k'(\{\fp\}) \le 2^{4a}2^{-n+1}.
1.5.4. Proof of the Forest Union Lemma
Fix k,n,j\ge 0. Define
\fC_6(k,n,j)
to be the set of all tiles \fp \in \fC_5(k,n,j) such that
\scI(\fp) \not\subset G'. The following chain of lemmas establishes that the
set \fC_6(k,n,j) can be written as a union of a small number of
n-forests.
For \fu\in \fU_1(k,n,j), define
\mathfrak{T}_1(\fu):= \{\fp \in \fC_1(k,n,j) \ : \scI(\fp)\neq \scI(\fu), \ 2\fp \lesssim \fu\}.
Define
\fU_2(k,n,j) := \{ \fu \in \fU_1(k,n,j) \, : \, \mathfrak{T}_1(\fu) \cap \fC_6(k,n,j) \ne \emptyset\}.
Define a relation \sim on \fU_2(k,n,j) by setting \fu\sim \fu' for
\fu,\fu'\in \fU_2(k,n,j) if \fu=\fu' or there exists \fp in
\mathfrak{T}_1(\fu) with 10 \fp\lesssim \fu'.
-
URel.eq[complete] -
URel.not_disjoint[complete]
Uses Lemma 1.47.
If \fu \sim \fu', then \scI(u) = \scI(u') and
B_{\fu}(\fcc(\fu), 100) \cap B_{\fu'}(\fcc(\fu'), 100) \neq \emptyset.
Lean code for Lemma1.57●2 theorems
Associated Lean declarations
-
URel.eq[complete]
-
URel.not_disjoint[complete]
-
URel.eq[complete] -
URel.not_disjoint[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem URel.eq.{u_1}
URel.eq.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {u u' : 𝔓 X} (hu : u ∈ 𝔘₂ k n j) (hu' : u' ∈ 𝔘₂ k n j) (huu' : URel k n j u u') : 𝓘 u = 𝓘 u'Lemma 5.4.1, part 1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {u𝔓 Xu'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (huu ∈ 𝔘₂ k n j: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₂𝔘₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₂(k, n, j)` of `𝔘₁(k, n, j)`, given in (5.4.2).kℕnℕjℕ) (hu'u' ∈ 𝔘₂ k n j: u'𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₂𝔘₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₂(k, n, j)` of `𝔘₁(k, n, j)`, given in (5.4.2).kℕnℕjℕ) (huu'URel k n j u u': URelURel.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u u' : 𝔓 X) : PropThe relation `∼` defined below (5.4.2). It is an equivalence relation on `𝔘₂ k n j`.kℕnℕjℕu𝔓 Xu'𝔓 X) : 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu'𝔓 Xtheorem URel.eq.{u_1}
URel.eq.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {u u' : 𝔓 X} (hu : u ∈ 𝔘₂ k n j) (hu' : u' ∈ 𝔘₂ k n j) (huu' : URel k n j u u') : 𝓘 u = 𝓘 u'Lemma 5.4.1, part 1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {u𝔓 Xu'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (huu ∈ 𝔘₂ k n j: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₂𝔘₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₂(k, n, j)` of `𝔘₁(k, n, j)`, given in (5.4.2).kℕnℕjℕ) (hu'u' ∈ 𝔘₂ k n j: u'𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₂𝔘₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₂(k, n, j)` of `𝔘₁(k, n, j)`, given in (5.4.2).kℕnℕjℕ) (huu'URel k n j u u': URelURel.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u u' : 𝔓 X) : PropThe relation `∼` defined below (5.4.2). It is an equivalence relation on `𝔘₂ k n j`.kℕnℕjℕu𝔓 Xu'𝔓 X) : 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu'𝔓 XLemma 5.4.1, part 1.
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem URel.not_disjoint.{u_1}
URel.not_disjoint.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {u u' : 𝔓 X} (hu : u ∈ 𝔘₂ k n j) (hu' : u' ∈ 𝔘₂ k n j) (huu' : URel k n j u u') : ¬Disjoint (ball_{𝔠 u, ↑(defaultD a) ^ 𝔰 u / 4} (𝒬 u) 100) (ball_{𝔠 u', ↑(defaultD a) ^ 𝔰 u' / 4} (𝒬 u') 100)Lemma 5.4.1, part 2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {u𝔓 Xu'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (huu ∈ 𝔘₂ k n j: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₂𝔘₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₂(k, n, j)` of `𝔘₁(k, n, j)`, given in (5.4.2).kℕnℕjℕ) (hu'u' ∈ 𝔘₂ k n j: u'𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₂𝔘₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₂(k, n, j)` of `𝔘₁(k, n, j)`, given in (5.4.2).kℕnℕjℕ) (huu'URel k n j u u': URelURel.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u u' : 𝔓 X) : PropThe relation `∼` defined below (5.4.2). It is an equivalence relation on `𝔘₂ k n j`.kℕnℕjℕu𝔓 Xu'𝔓 X) : ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(ball_{Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xu𝔓 X,Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤu𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) 100) (ball_{Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xu'𝔓 X,Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤu'𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu'𝔓 X) 100)theorem URel.not_disjoint.{u_1}
URel.not_disjoint.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {u u' : 𝔓 X} (hu : u ∈ 𝔘₂ k n j) (hu' : u' ∈ 𝔘₂ k n j) (huu' : URel k n j u u') : ¬Disjoint (ball_{𝔠 u, ↑(defaultD a) ^ 𝔰 u / 4} (𝒬 u) 100) (ball_{𝔠 u', ↑(defaultD a) ^ 𝔰 u' / 4} (𝒬 u') 100)Lemma 5.4.1, part 2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {u𝔓 Xu'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (huu ∈ 𝔘₂ k n j: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₂𝔘₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₂(k, n, j)` of `𝔘₁(k, n, j)`, given in (5.4.2).kℕnℕjℕ) (hu'u' ∈ 𝔘₂ k n j: u'𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₂𝔘₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₂(k, n, j)` of `𝔘₁(k, n, j)`, given in (5.4.2).kℕnℕjℕ) (huu'URel k n j u u': URelURel.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u u' : 𝔓 X) : PropThe relation `∼` defined below (5.4.2). It is an equivalence relation on `𝔘₂ k n j`.kℕnℕjℕu𝔓 Xu'𝔓 X) : ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(ball_{Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xu𝔓 X,Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤu𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) 100) (ball_{Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xu'𝔓 X,Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤu'𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu'𝔓 X) 100)Lemma 5.4.1, part 2.
Proof. Let \fu, \fu' \in \fU_2(k,n,j) with \fu \sim \fu'. If
\fu = \fu' then the conclusion of the Lemma clearly holds. Else, there
exists \fp \in \fC_1(k,n,j) such that \scI(\fp) \ne \scI(\fu) and
2 \fp \lesssim \fu and 10 \fp \lesssim \fu'. Using Lemma 1.45 and
eq-sc2 of Lemma 1.47, we deduce that
100 \fp\lesssim 100 \fu\,, \qquad 100 \fp \lesssim 100\fu'.
Now suppose that B_{\fu}(\fcc(\fu), 100) \cap B_{\fu'}(\fcc(\fu'), 100) = \emptyset. Then we have \mathfrak{B}(\fu) \cap \mathfrak{B}(\fu') = \emptyset, by the definition defbfp of \mathfrak{B} and the definition wiggleorder of \lesssim, but also \mathfrak{B}(\fu) \subset \mathfrak{B}(\fp) and \mathfrak{B}(\fu') \subset \mathfrak{B}(\fp), by defbfp, wiggleorder and the previous estimate. Hence
|\mathfrak{B}(\fp)| \geq |\mathfrak{B}(\fu)| + |\mathfrak{B}(\fu')| \geq 2^{j} + 2^j = 2^{j+1},
which contradicts \fp \in \fC_1(k,n,j). Therefore we must have
B_{\fu}(\fcc(\fu), 100) \cap B_{\fu'}(\fcc(\fu'), 100) \ne \emptyset.
It follows from 2\fp \lesssim \fu and 10\fp \lesssim \fu' that
\scI(\fp) \subset \scI(\fu) and \scI(\fp) \subset \scI(\fu'). By
dyadicproperty, it follows that \scI(\fu) and \scI(\fu') are nested.
Combining this with the conclusion of the last paragraph and definition
defunkj of \fU_1(k,n,j), we obtain that
\scI(\fu) = \scI(\fu').
-
equivalenceOn_urel[complete]
Uses Lemma 1.57.
For each k,n,j, the relation \sim on \fU_2(k,n,j) is an equivalence
relation.
Lean code for Lemma1.58●1 theorem
Associated Lean declarations
-
equivalenceOn_urel[complete]
-
equivalenceOn_urel[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem equivalenceOn_urel.{u_1}
equivalenceOn_urel.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : EquivalenceOn (URel k n j) (𝔘₂ k n j)Lemma 5.4.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : EquivalenceOnEquivalenceOn.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn equivalence relation on the set `s`.(URelURel.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u u' : 𝔓 X) : PropThe relation `∼` defined below (5.4.2). It is an equivalence relation on `𝔘₂ k n j`.kℕnℕjℕ) (𝔘₂𝔘₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₂(k, n, j)` of `𝔘₁(k, n, j)`, given in (5.4.2).kℕnℕjℕ)theorem equivalenceOn_urel.{u_1}
equivalenceOn_urel.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : EquivalenceOn (URel k n j) (𝔘₂ k n j)Lemma 5.4.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : EquivalenceOnEquivalenceOn.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn equivalence relation on the set `s`.(URelURel.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u u' : 𝔓 X) : PropThe relation `∼` defined below (5.4.2). It is an equivalence relation on `𝔘₂ k n j`.kℕnℕjℕ) (𝔘₂𝔘₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔘₂(k, n, j)` of `𝔘₁(k, n, j)`, given in (5.4.2).kℕnℕjℕ)Lemma 5.4.2.
Proof. Reflexivity holds by definition. For transitivity, suppose that
\fu, \fu', \fu'' \in \fU_1(k,n,j)
and \fu \sim \fu', \fu' \sim \fu''. By Lemma 1.57, it follows
that \scI(\fu) =\scI(\fu') = \scI(\fu''), that there exists
\mfa \in B_{\fu}(\fcc(\fu), 100) \cap B_{\fu'}(\fcc(\fu'), 100)
and that there exists
\mfb \in B_{\fu'}(\fcc(\fu'), 100) \cap B_{\fu''}(\fcc(\fu''), 100).
If \fu = \fu', then \fu \sim \fu'' holds by assumption. Else, there
exists by the definition of \sim some \fp \in \mathfrak{T}_1(\fu) with
10\fp\lesssim \fu'. Then we have 2\fp \lesssim \fu and \fp \ne \fu by
definition of \mathfrak{T}_1(\fu), so 4 \fp \lesssim 500 \fu by
eq-sc3. For q \in B_{\fu''}(\fcc(\fu''), 1) it follows by the triangle
inequality that
d_{\fu}(\fcc(\fu), q) \le d_{\fu}(\fcc(\fu), \mfa) + d_{\fu}(\mfa, \fcc(\fu')) + d_{\fu}(\fcc(\fu'), \mfb) + d_{\fu}(\mfb, \fcc(\fu'')) + d_{\fu}(\fcc(\fu''), q).
Using defdp and the fact that
\scI(\fu) = \scI(\fu') = \scI(\fu'') this equals
d_{\fu}(\fcc(\fu), \mfa) + d_{\fu'}(\mfa, \fcc(\fu')) + d_{\fu'}(\fcc(\fu'), \mfb) + d_{\fu''}(\mfb, \fcc(\fu'')) + d_{\fu''}(\fcc(\fu''), q) < 100 + 100 + 100 + 100 + 1 < 500.
Since 4\fp \lesssim 500 \fu, it follows that
d_{\fp}(\fcc(\fp), q) < 4 < 10. We have shown that
B_{\fu''}(\fcc(\fu''), 1) \subset B_{\fp}(\fcc(\fp), 10), combining this
with \scI(\fu'') = \scI(\fu) gives \fu \sim \fu''.
For symmetry, suppose that \fu \sim \fu'. By Lemma 1.57, the two
tops have the same spatial cube and their 100-balls in the frequency metric
intersect. If \fu = \fu', there is nothing to prove, so assume
\fu \ne \fu'. Then some tile in \mathfrak{T}_1(\fu') witnesses the
relation, and Lemma 1.45 together with eq-sc3 upgrades this to the
comparison 10\fp \lesssim 4\fp \lesssim 500 \fu'. For any
q ∈ B_{\fu}(\fcc(\fu),1), the triangle inequality and the equality of the
underlying cubes give a bound d_{\fu'}(\fcc(\fu'), q) < 500. Combining this
with the previous comparison and the definition of \lesssim shows that
B_{\fu}(\fcc(\fu), 1) ⊆ B_{\fp}(\fcc(\fp), 10). Since 2\fp \lesssim \fu',
we also have \scI(\fp) ⊆ \scI(\fu') = \scI(\fu), and hence the required
comparison proving \fu' \sim \fu.
Choose a set \fU_3(k,n,j) of representatives for the equivalence classes of
\sim in \fU_2(k,n,j). Define for each \fu\in \fU_3(k,n,j)
\fT_2(\fu):=
\bigcup_{\fu\sim \fu'}\mathfrak{T}_1(\fu')\cap \fC_6(k,n,j).
Uses Lemma 1.58.
We have
\fC_6(k,n,j)=\bigcup_{\fu\in \fU_3(k,n,j)}\mathfrak{T}_2(\fu).
Lean code for Lemma1.59●1 theorem
Associated Lean declarations
-
C6_forest[complete]
-
C6_forest[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem C6_forest.{u_1}
C6_forest.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : ℭ₆ k n j = ⋃ u ∈ 𝔘₃ k n j, 𝔗₂ k n j uLemma 5.4.3{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : ℭ₆ℭ₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₆(k, n, j)` of `ℭ₅(k, n, j)`, given above (5.4.1).kℕnℕjℕ=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.⋃ u𝔓 X∈ 𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ, 𝔗₂𝔗₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u : 𝔓 X) : Set (𝔓 X)The subset `𝔗₂(u)` of `ℭ₆(k, n, j)`, given in (5.4.5). In lemmas, we will assume `u ∈ 𝔘₃ k n l`kℕnℕjℕu𝔓 Xtheorem C6_forest.{u_1}
C6_forest.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : ℭ₆ k n j = ⋃ u ∈ 𝔘₃ k n j, 𝔗₂ k n j uLemma 5.4.3{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : ℭ₆ℭ₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `ℭ₆(k, n, j)` of `ℭ₅(k, n, j)`, given above (5.4.1).kℕnℕjℕ=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.⋃ u𝔓 X∈ 𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ, 𝔗₂𝔗₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u : 𝔓 X) : Set (𝔓 X)The subset `𝔗₂(u)` of `ℭ₆(k, n, j)`, given in (5.4.5). In lemmas, we will assume `u ∈ 𝔘₃ k n l`kℕnℕjℕu𝔓 XLemma 5.4.3
Proof. Let \fp \in \fC_6(k,n,j). By eq-C4-def and defc5, we have
\fp \in \fC_3(k,n,j). By eq-L2-def and eq-C3-def, there exists
\fu \in \fU_1(k,n,j) with 2\fp \lesssim \fu and
\scI(\fp) \ne \scI(\fu), that is, with
\fp \in \mathfrak{T}_1(\fu). Then \mathfrak{T}_1(\fu) is clearly
nonempty, so \fu \in \fU_2(k,n,j). By the definition of
\fU_3(k,n,j), there exists \fu' \in \fU_3(k,n,j) with
\fu \sim \fu'. By definesv, we have
\fp \in \mathfrak{T}_2(\fu').
-
forest_geometry[complete]
Uses Lemma 1.57.
For each \fu\in \fU_3(k,n,j), the set \mathfrak{T}_2(\fu) satisfies
forest1.
Lean code for Lemma1.60●1 theorem
Associated Lean declarations
-
forest_geometry[complete]
-
forest_geometry[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem forest_geometry.{u_1}
forest_geometry.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {p u : 𝔓 X} (hu : u ∈ 𝔘₃ k n j) (hp : p ∈ 𝔗₂ k n j u) : smul 4 p ≤ smul 1 uLemma 5.4.4, verifying (2.0.32){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {p𝔓 Xu𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (huu ∈ 𝔘₃ k n j: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ) (hpp ∈ 𝔗₂ k n j u: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔗₂𝔗₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u : 𝔓 X) : Set (𝔓 X)The subset `𝔗₂(u)` of `ℭ₆(k, n, j)`, given in (5.4.5). In lemmas, we will assume `u ∈ 𝔘₃ k n l`kℕnℕjℕu𝔓 X) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.4 p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.1 u𝔓 Xtheorem forest_geometry.{u_1}
forest_geometry.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {p u : 𝔓 X} (hu : u ∈ 𝔘₃ k n j) (hp : p ∈ 𝔗₂ k n j u) : smul 4 p ≤ smul 1 uLemma 5.4.4, verifying (2.0.32){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {p𝔓 Xu𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (huu ∈ 𝔘₃ k n j: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ) (hpp ∈ 𝔗₂ k n j u: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔗₂𝔗₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u : 𝔓 X) : Set (𝔓 X)The subset `𝔗₂(u)` of `ℭ₆(k, n, j)`, given in (5.4.5). In lemmas, we will assume `u ∈ 𝔘₃ k n l`kℕnℕjℕu𝔓 X) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.4 p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.1 u𝔓 XLemma 5.4.4, verifying (2.0.32)
Proof. Let \fp \in \mathfrak{T}_2(\fu). By definesv, there exists
\fu' \sim \fu with \fp \in \mathfrak{T}_1(\fu'). Then we have
2\fp \lesssim \fu' and \scI(\fp) \ne \scI(\fu'), so by eq-sc3
4\fp \lesssim 500\fu'. Further, by Lemma 1.57, we have that
\scI(\fu') = \scI(\fu) and there exists
\mfa \in B_{\fu'}(\fcc(\fu'),100) \cap B_{\fu}(\fcc(\fu),100).
Let \mfb \in B_{\fu}(\fcc(\fu), 1). Using the triangle inequality and the
fact that \scI(\fu') =\scI(\fu), we obtain
d_{\fu'}(\fcc(\fu'), \mfb) \le d_{\fu'}(\fcc(\fu'), \mfa) + d_{\fu'}(\fcc(\fu), \mfa) + d_{\fu'}(\fcc(\fu), \mfb)
= d_{\fu'}(\fcc(\fu'), \mfa) + d_{\fu}(\fcc(\fu), \mfa) + d_{\fu}(\fcc(\fu), \mfb) < 100 + 100 + 1 < 500.
Combining this with 4\fp \lesssim 500\fu', we obtain
B_{\fu}(\fcc(\fu), 1) \subset B_{\fu'}(\fcc(\fu'), 500) \subset B_{\fp}(\fcc(\fp), 4).
Together with \scI(\fp) \subset \scI(\fu') = \scI(\fu), this gives
4\fp \lesssim \fu, which is forest1.
-
forest_convex[complete]
Uses Lemma 1.54.
For each \fu\in \fU_3(k,n,j), the set \mathfrak{T}_2(\fu) satisfies the
convexity condition forest2.
Lean code for Lemma1.61●1 theorem
Associated Lean declarations
-
forest_convex[complete]
-
forest_convex[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem forest_convex.{u_1}
forest_convex.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {u : 𝔓 X} : (𝔗₂ k n j u).OrdConnectedLemma 5.4.5, verifying (2.0.33){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} : (𝔗₂𝔗₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u : 𝔓 X) : Set (𝔓 X)The subset `𝔗₂(u)` of `ℭ₆(k, n, j)`, given in (5.4.5). In lemmas, we will assume `u ∈ 𝔘₃ k n l`kℕnℕjℕu𝔓 X).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.theorem forest_convex.{u_1}
forest_convex.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {u : 𝔓 X} : (𝔗₂ k n j u).OrdConnectedLemma 5.4.5, verifying (2.0.33){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} : (𝔗₂𝔗₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u : 𝔓 X) : Set (𝔓 X)The subset `𝔗₂(u)` of `ℭ₆(k, n, j)`, given in (5.4.5). In lemmas, we will assume `u ∈ 𝔘₃ k n l`kℕnℕjℕu𝔓 X).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.Lemma 5.4.5, verifying (2.0.33)
Proof. Let \fp, \fp'' \in \mathfrak{T}_2(\fu) and \fp' \in \fP with
\fp \le \fp' \le \fp''. By definesv we have
\fp, \fp'' \in \fC_6(k,n,j) \subset \fC_5(k,n,j). By Lemma 1.54, we have
\fp' \in \fC_5(k,n,j). Since \fp \in \fC_6(k,n,j) we have
\scI(\fp) \not \subset G', so \scI(\fp') \not \subset G' and therefore
also \fp' \in \fC_6(k,n,j).
By definesv there exists \fu' \in \fU_2(k,n,j) with
\fp'' \in \mathfrak{T}_1(\fu') and hence 2\fp'' \lesssim \fu' and
\scI(\fp'') \ne \scI(\fu'). Together this implies
\scI(\fp'') \subsetneq \scI(\fu'). With the inclusion
\scI(\fp') \subset \scI(\fp'') from \fp' \le \fp'', it follows that
\scI(\fp') \subsetneq \scI(\fu') and hence
\scI(\fp') \ne \scI(\fu'). By eq-sc1 and transitivity of \lesssim we
further have 2\fp' \lesssim \fu', so \fp' \in \mathfrak{T}_1(\fu').
It follows that \fp' \in \mathfrak{T}_2(\fu), which shows forest2.
-
forest_separation[complete]
Uses Lemma 1.11.
For each \fu,\fu'\in \fU_3(k,n,j) with \fu\neq \fu' and each
\fp \in \fT_2(\fu) with \scI(\fp)\subset \scI(\fu') we have
d_{\fp}(\fcc(\fp), \fcc(\fu')) > 2^{Z(n+1)}.
Lean code for Lemma1.62●1 theorem
Associated Lean declarations
-
forest_separation[complete]
-
forest_separation[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem forest_separation.{u_1}
forest_separation.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {p u u' : 𝔓 X} (hu : u ∈ 𝔘₃ k n j) (hu' : u' ∈ 𝔘₃ k n j) (huu' : u ≠ u') (hp : p ∈ 𝔗₂ k n j u') (h : 𝓘 p ≤ 𝓘 u) : 2 ^ (defaultZ a * (n + 1)) < dist_{𝔠 p, ↑(defaultD a) ^ 𝔰 p / 4} (𝒬 p) (𝒬 u)Lemma 5.4.6, verifying (2.0.36) Note: swapped `u` and `u'` to match (2.0.36){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {p𝔓 Xu𝔓 Xu'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (huu ∈ 𝔘₃ k n j: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ) (hu'u' ∈ 𝔘₃ k n j: u'𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ) (huu'u ≠ u': u𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u'𝔓 X) (hpp ∈ 𝔗₂ k n j u': p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔗₂𝔗₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u : 𝔓 X) : Set (𝔓 X)The subset `𝔗₂(u)` of `ℭ₆(k, n, j)`, given in (5.4.5). In lemmas, we will assume `u ∈ 𝔘₃ k n l`kℕnℕjℕu'𝔓 X) (h𝓘 p ≤ 𝓘 u: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X) : 2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.defaultZdefaultZ (a : ℕ) : ℕThe constant `Z` from (2.0.3).aℕ*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.dist_{Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X,Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp𝔓 X) (𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X)theorem forest_separation.{u_1}
forest_separation.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {p u u' : 𝔓 X} (hu : u ∈ 𝔘₃ k n j) (hu' : u' ∈ 𝔘₃ k n j) (huu' : u ≠ u') (hp : p ∈ 𝔗₂ k n j u') (h : 𝓘 p ≤ 𝓘 u) : 2 ^ (defaultZ a * (n + 1)) < dist_{𝔠 p, ↑(defaultD a) ^ 𝔰 p / 4} (𝒬 p) (𝒬 u)Lemma 5.4.6, verifying (2.0.36) Note: swapped `u` and `u'` to match (2.0.36){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {p𝔓 Xu𝔓 Xu'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (huu ∈ 𝔘₃ k n j: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ) (hu'u' ∈ 𝔘₃ k n j: u'𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ) (huu'u ≠ u': u𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u'𝔓 X) (hpp ∈ 𝔗₂ k n j u': p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔗₂𝔗₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u : 𝔓 X) : Set (𝔓 X)The subset `𝔗₂(u)` of `ℭ₆(k, n, j)`, given in (5.4.5). In lemmas, we will assume `u ∈ 𝔘₃ k n l`kℕnℕjℕu'𝔓 X) (h𝓘 p ≤ 𝓘 u: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X) : 2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.defaultZdefaultZ (a : ℕ) : ℕThe constant `Z` from (2.0.3).aℕ*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.dist_{Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X,Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp𝔓 X) (𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X)Lemma 5.4.6, verifying (2.0.36) Note: swapped `u` and `u'` to match (2.0.36)
Proof. By the definition eq-C2-def of \fC_2(k,n,j), there exists a tile
\fp' \in \fC_1(k,n,j) with \fp' \le \fp and
\ps(\fp') \le \ps(\fp)- Z(n+1). By Lemma 1.11 we have
d_{\fp}(\fcc(\fp), \fcc(\fu')) \ge 2^{95a Z(n+1)} d_{\fp'}(\fcc(\fp), \fcc(\fu')).
By eq-sc1 we have 2\fp' \lesssim 2\fp, so by transitivity there exists a
tile \mathfrak{v} equivalent to \fu with 2\fp' \lesssim \mathfrak{v} and
with spatial cube different from that of \fp'. Since \fu and \fu' are
not equivalent under \sim, it follows that 10\fp' \not\lesssim \fu', so
there is a point q in B_{\fu'}(\fcc(\fu'), 1) but outside
B_{\fp'}(\fcc(\fp'), 10). Using \fp' \le \fp,
\scI(\fp') \subset \scI(\fp) \subset \scI(\fu'), and
Lemma 1.11, one gets a lower bound for
d_{\fp'}(\fcc(\fp), \fcc(\fu')) that is strictly greater than 8.
Combining this with the first display and the fact that 95 a ≥ 1 gives the
claimed lower bound.
-
forest_inner[complete]
Uses Lemma 1.57.
For each \fu\in \fU_3(k,n,j) and each \fp \in \mathfrak{T}_2(\fu) we
have
B(\pc(\fp), 8 D^{\ps(\fp)}) \subset \scI(\fu).
Lean code for Lemma1.63●1 theorem
Associated Lean declarations
-
forest_inner[complete]
-
forest_inner[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem forest_inner.{u_1}
forest_inner.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {p u : 𝔓 X} (hu : u ∈ 𝔘₃ k n j) (hp : p ∈ 𝔗₂ k n j u) : Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p) ⊆ ↑(𝓘 u)Lemma 5.4.7, verifying (2.0.37){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {p𝔓 Xu𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (huu ∈ 𝔘₃ k n j: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ) (hpp ∈ 𝔗₂ k n j u: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔗₂𝔗₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u : 𝔓 X) : Set (𝔓 X)The subset `𝔗₂(u)` of `ℭ₆(k, n, j)`, given in (5.4.5). In lemmas, we will assume `u ∈ 𝔘₃ k n l`kℕnℕjℕu𝔓 X) : Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X)theorem forest_inner.{u_1}
forest_inner.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} {p u : 𝔓 X} (hu : u ∈ 𝔘₃ k n j) (hp : p ∈ 𝔗₂ k n j u) : Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p) ⊆ ↑(𝓘 u)Lemma 5.4.7, verifying (2.0.37){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {p𝔓 Xu𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (huu ∈ 𝔘₃ k n j: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ) (hpp ∈ 𝔗₂ k n j u: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔗₂𝔗₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) (u : 𝔓 X) : Set (𝔓 X)The subset `𝔗₂(u)` of `ℭ₆(k, n, j)`, given in (5.4.5). In lemmas, we will assume `u ∈ 𝔘₃ k n l`kℕnℕjℕu𝔓 X) : Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X)Lemma 5.4.7, verifying (2.0.37)
Proof. Let \fp \in \mathfrak{T}_2(\fu). Then \fp \in \fC_4(k,n,j),
hence there exists a chain
\fp \le \fp_{Z(n+1)} \le \dotsb \le \fp_0
of distinct tiles in \fC_3(n,k,j). We pick such a chain and set
\fq = \fp_0. Then we have from distinctness of the tiles in the chain that
\ps(\fp) \le \ps(\fq) - Z(n+1). By eq-C3-def there exists
\fu'' \in \fU_1(k,n,j) with 2\fq \lesssim \fu'' and
\ps(\fq) < \ps(\fu''). Then we have in particular by Lemma 1.45 that
10 \fp \lesssim \fu''. Let \fu' \sim \fu be such that
\fp \in \mathfrak{T}_1(\fu'). By the definition of \sim, it follows
that \fu' \sim \fu''. By transitivity of \sim, we have
\fu \sim \fu''. By Lemma 1.57, we have
\ps(\fu'') = \ps(\fu), hence
\ps(\fq) < \ps(\fu) and
\ps(\fp) \le \ps(\fq) - Z(n+1) \le \ps(\fu) - Z(n+1) - 1.
Thus, there exists some cube I \in \mathcal{D} with
s(I) = \ps(\fu) - Z(n+1) - 1 and I \subset \scI(\fu) and
\scI(\fp) \subset I. Since \fp \in \fC_5(k,n,j), we have that
I \notin \mathcal{L}(\fu), so
B(c(I), 8D^{s(I)}) \subset \scI(\fu). By the triangle inequality,
defineD and a \ge 4, the same then holds for the subcube
\scI(\fp) \subset I.
-
forest_stacking[complete]
It holds for k\le n that
\sum_{\fu \in \fU_3(k,n,j)} \mathbf{1}_{\scI(\fu)} \le (4n+12)2^{n}.
Lean code for Lemma1.64●1 theorem
Associated Lean declarations
-
forest_stacking[complete]
-
forest_stacking[complete]
-
theoremdefined in Carleson/Discrete/ForestUnion.leancomplete
theorem forest_stacking.{u_1}
forest_stacking.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} (x : X) (hkn : k ≤ n) : stackSize (𝔘₃ k n j) x ≤ C5_4_8 nLemma 5.4.8, used to verify that 𝔘₄ satisfies 2.0.34.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} (xX: XType u_1) (hknk ≤ n: kℕ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.nℕ) : stackSizestackSize.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (C : Set (𝔓 X)) (x : X) : ℕThe number of tiles `p` in `s` whose underlying cube `𝓘 p` contains `x`.(𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ) xX≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.C5_4_8C5_4_8 (n : ℕ) : ℕThe multiplicity appearing in Lemma 5.4.8.nℕtheorem forest_stacking.{u_1}
forest_stacking.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} (x : X) (hkn : k ≤ n) : stackSize (𝔘₃ k n j) x ≤ C5_4_8 nLemma 5.4.8, used to verify that 𝔘₄ satisfies 2.0.34.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} (xX: XType u_1) (hknk ≤ n: kℕ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.nℕ) : stackSizestackSize.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (C : Set (𝔓 X)) (x : X) : ℕThe number of tiles `p` in `s` whose underlying cube `𝓘 p` contains `x`.(𝔘₃𝔘₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)`𝔘₃(k, n, j) ⊆ 𝔘₂ k n j` is an arbitary set of representatives of `URel` on `𝔘₂ k n j`, given above (5.4.5).kℕnℕjℕ) xX≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.C5_4_8C5_4_8 (n : ℕ) : ℕThe multiplicity appearing in Lemma 5.4.8.nℕLemma 5.4.8, used to verify that 𝔘₄ satisfies 2.0.34.
Proof. Suppose that a point x is contained in more than
(4n + 12)2^n cubes \scI(\fu) with \fu \in \fU_3(k,n,j). Since
\fU_3(k,n,j) \subset \fC_1(k,n,j) for each such \fu, there exists
\mathfrak{m} \in \mathfrak{M}(k,n) such that
100\fu \lesssim \mathfrak{m}. We fix such an
\mathfrak{m}(\fu) := \mathfrak{m} for each \fu, and claim that the map
\fu \mapsto\mathfrak{m}(\fu) is injective. Indeed, assume for
\fu\neq \fu' there is \mathfrak{m} \in \mathfrak{M}(k,n) such that
100\fu \lesssim \mathfrak{m} and 100\fu' \lesssim \mathfrak{m}. By
dyadicproperty, either \scI(\fu) \subset \scI(\fu') or
\scI(\fu') \subset \scI(\fu). By defunkj,
B_{\fu}(\fcc(\fu),100) \cap B_{\fu'}(\fcc(\fu'), 100) = \emptyset. This
contradicts \Omega(\mathfrak{m}) being contained in both sets by
eq-freq-comp-ball. Thus x is contained in more than
(4n + 12)2^n cubes \scI(\mathfrak{m}), \mathfrak{m} \in \mathfrak{M}(k,n).
Consequently, we have by eq-Aoverlap-def that
x \in A(2n + 6, k,n) \subset G_2. Let \scI(\fu) be an inclusion minimal
cube among the \scI(\fu'), \fu' \in \fU_3(k,n,j) with
x \in \scI(\fu). By the dyadic property dyadicproperty, we have
\scI(\fu) \subset \scI(\fu') for all cubes \scI(\fu') containing
x. Thus
\scI(\fu) \subset \{y \ : \ \sum_{\fu \in \fU_3(k,n,j)} \mathbf{1}_{\scI(\fu)}(y) > 1 + (4n+12)2^{n}\} \subset G_2.
Thus \mathfrak{T}_1(\fu) \cap \fC_6(k,n,j) = \emptyset. This contradicts
\fu \in \fU_2(k,n,j).
We now turn to the proof of Lemma 1.33.
Proof of Lemma 1.33. We first fix k,n, j. By definetp and
defineep, we have that
\mathbf{1}_{\scI(\fp)} T_{\fp}f(x) = T_{\fp}f(x) and hence
\mathbf{1}_{G \setminus G'} T_{\fp}f(x)= 0 for all
\fp \in \fC_5(k,n,j) \setminus \fC_6(k,n,j). Thus it suffices to estimate
the contribution of the sets \fC_6(k,n,j). By Lemma 1.64, we can
decompose \fU_3(k,n,j) as a disjoint union of at most 4n + 12
collections \fU_4(k,n,j,l), 1 \le l \le 4n+12, each satisfying
\sum_{\fu \in \fU_4(k,n,j,l)} \mathbf{1}_{\scI(\fu)} \le 2^n.
By Lemmas Lemma 1.60, Lemma 1.61,
Lemma 1.62, Lemma 1.63, and Lemma 1.56, the pairs
(\fU_4(k,n,j,l), \mathfrak{T}_2|_{\fU_4(k,n,j,l)})
are n-forests for each k,n,j,l, and by Lemma 1.59, we have
\fC_6(k,n,j) = \bigcup_{l = 1}^{4n + 12} \bigcup_{\fu \in \fU_4(k,n,j,l)} \mathfrak{T}_2(\fu).
Since \scI(\fp) \not\subset G_1 for all \fp \in \fC_6(k,n,j), we have
\fC_6(k,n,j) \cap \fP_{F,G} = \emptyset and hence
\dens_2(\bigcup_{\fu \in \fU_4(k,n,j,l)} \mathfrak{T}_2(\fu)) \le 2^{2a + 5} \frac{\mu(F)}{\mu(G)}.
Using the triangle inequality according to the splitting by k,n,j and
l in disclesssim1 and applying Theorem 1.7 to each term, we obtain
the estimate
\sum_{k \ge 0}\sum_{n \ge k} (2n+3)(4n+12) 2^{440a^3}2^{-(1-\frac{1}{q})n}(2^{2a+5} \frac{\mu(F)}{\mu(G)})^{\frac{1}{q} - \frac{1}{2}} \|f\|_2 \|\mathbf{1}_{G\setminus G'}\|_2
for the left hand side of disclesssim1. Since |f| \le \mathbf{1}_F, we
have \|f\|_2 \le \mu(F)^{1/2}, and we have
\|\mathbf{1}_{G\setminus G'}\|_2 \le \mu(G)^{1/2}. We get a bound
2^{440a^3} \mu(F)^{\frac{1}{q}} \mu(G)^{1
-\frac{1}{q}} 2^{2a+5}\sum_{k \ge 0}\sum_{n \ge k}(2n+3)(4n+12) 2^{-(1-\frac{1}{q})n}.
Interchanging the order of summation, the last factor equals
2^{2a+5} \sum_{n \ge 0} (2n+3)(4n+12) (n+1) 2^{-\frac{q-1}{q}n}.
Up to an explicit constant, the sum is bounded by
\sum n^3 2^{-\frac{q-1}{q}n}, which is at most some constant times
1/(q-1)^4 by comparing to an integral. Since a \ge 4, this is overall
bounded by 2^{a^3}/(q-1)^4, which completes the proof of the lemma.
1.5.5. Proof of the Forest Complement Lemma
Define \fP_{G \setminus G'} to be the set of all \fp \in \fP such that
\mu(\scI(\fp) \cap (G \setminus G')) > 0.
-
antichain_decomposition[complete]
We have that
\fP_2 \cap \fP_{G \setminus G'}
= \bigcup_{k \ge 0} \bigcup_{n \ge k} \fL_0(k,n) \cap \fP_{G \setminus G'}
\cup \bigcup_{k \ge 0} \bigcup_{n \ge k}\bigcup_{0 \le j \le 2n+3} \fL_2(k,n,j) \cap \fP_{G \setminus G'}
\cup \bigcup_{k \ge 0} \bigcup_{n \ge k}\bigcup_{0 \le j \le 2n+3} \bigcup_{0 \le l \le Z(n+1)} \fL_1(k,n,j,l) \cap \fP_{G \setminus G'}
\cup \bigcup_{k \ge 0} \bigcup_{n \ge k}\bigcup_{0 \le j \le 2n+3} \bigcup_{0 \le l \le Z(n+1)} \fL_3(k,n,j,l)\cap \fP_{G \setminus G'}.
Lean code for Lemma1.65●1 theorem
Associated Lean declarations
-
antichain_decomposition[complete]
-
antichain_decomposition[complete]
-
theoremdefined in Carleson/Discrete/ForestComplement.leancomplete
theorem antichain_decomposition.{u_1}
antichain_decomposition.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : 𝔓pos ∩ 𝔓₁ᶜ = ℜ₀ ∪ ℜ₁ ∪ ℜ₂ ∪ ℜ₃Lemma 5.5.1. We will not use the lemma in this form, as to decompose the Carleson sum it is also crucial that the union is disjoint. This is easier to formalize by decomposing into successive terms, taking advantage of disjointess at each step, instead of doing everything in one go. Still, we keep this lemma as it corresponds to the blueprint, and the key steps of its proof will also be the key steps when doing the successive decompositions.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] : 𝔓pos𝔓pos.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The set 𝔓_{G\G'} in the blueprint∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.𝔓₁𝔓₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The set `𝔓₁`, defined in (5.1.30).ᶜCompl.compl.{u_1} {α : Type u_1} [self : Compl α] : α → αSet / lattice complement Conventions for notations in identifiers: * The recommended spelling of `ᶜ` in identifiers is `compl`.=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.ℜ₀ℜ₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The union occurring in the statement of Lemma 5.5.1 containing 𝔏₀∪Union.union.{u} {α : Type u} [self : Union α] : α → α → α`a ∪ b` is the union of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∪` in identifiers is `union`.ℜ₁ℜ₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The union occurring in the statement of Lemma 5.5.1 containing 𝔏₁∪Union.union.{u} {α : Type u} [self : Union α] : α → α → α`a ∪ b` is the union of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∪` in identifiers is `union`.ℜ₂ℜ₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The union occurring in the statement of Lemma 5.5.1 containing 𝔏₂∪Union.union.{u} {α : Type u} [self : Union α] : α → α → α`a ∪ b` is the union of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∪` in identifiers is `union`.ℜ₃ℜ₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The union occurring in the statement of Lemma 5.5.1 containing 𝔏₃theorem antichain_decomposition.{u_1}
antichain_decomposition.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : 𝔓pos ∩ 𝔓₁ᶜ = ℜ₀ ∪ ℜ₁ ∪ ℜ₂ ∪ ℜ₃Lemma 5.5.1. We will not use the lemma in this form, as to decompose the Carleson sum it is also crucial that the union is disjoint. This is easier to formalize by decomposing into successive terms, taking advantage of disjointess at each step, instead of doing everything in one go. Still, we keep this lemma as it corresponds to the blueprint, and the key steps of its proof will also be the key steps when doing the successive decompositions.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] : 𝔓pos𝔓pos.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The set 𝔓_{G\G'} in the blueprint∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.𝔓₁𝔓₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The set `𝔓₁`, defined in (5.1.30).ᶜCompl.compl.{u_1} {α : Type u_1} [self : Compl α] : α → αSet / lattice complement Conventions for notations in identifiers: * The recommended spelling of `ᶜ` in identifiers is `compl`.=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.ℜ₀ℜ₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The union occurring in the statement of Lemma 5.5.1 containing 𝔏₀∪Union.union.{u} {α : Type u} [self : Union α] : α → α → α`a ∪ b` is the union of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∪` in identifiers is `union`.ℜ₁ℜ₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The union occurring in the statement of Lemma 5.5.1 containing 𝔏₁∪Union.union.{u} {α : Type u} [self : Union α] : α → α → α`a ∪ b` is the union of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∪` in identifiers is `union`.ℜ₂ℜ₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The union occurring in the statement of Lemma 5.5.1 containing 𝔏₂∪Union.union.{u} {α : Type u} [self : Union α] : α → α → α`a ∪ b` is the union of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∪` in identifiers is `union`.ℜ₃ℜ₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (𝔓 X)The union occurring in the statement of Lemma 5.5.1 containing 𝔏₃Lemma 5.5.1. We will not use the lemma in this form, as to decompose the Carleson sum it is also crucial that the union is disjoint. This is easier to formalize by decomposing into successive terms, taking advantage of disjointess at each step, instead of doing everything in one go. Still, we keep this lemma as it corresponds to the blueprint, and the key steps of its proof will also be the key steps when doing the successive decompositions.
Proof. Let \fp \in \fP_2 \cap \fP_{G \setminus G'}. Clearly, for every cube
J = \scI(\fp) with \fp \in \fP_{G \setminus G'} there exists some
k \ge 0 such that muhj1 holds, and for no cube J \in \mathcal{D} and
no k < 0 does muhj2 hold. Thus \fp \in \fP(k) for some k \ge 0.
Next, since E_2(\lambda, \fp') \subset \scI(\fp')\cap G for every
\lambda \ge 2 and every tile \fp' \in \fP(k) with
\lambda\fp \lesssim \lambda\fp', it follows from muhj2 that
\mu(E_2(\lambda, \fp')) \le 2^{-k} \mu(\scI(\fp')) for every such
\fp', so \dens_k'(\{\fp\}) \le 2^{-k}. Combining this with
a \ge 0, it follows from def-cnk that there exists n\ge k with
\fp \in \fC(k,n). Since \fp \in \fP_{G \setminus G'}, we have in
particular \scI(\fp) \not \subset A(2n + 6, k, n), so there exist at most
1 + (4n + 12)2^n < 2^{2n+4} tiles \mathfrak{m} \in \mathfrak{M}(k,n)
with \fp \le \mathfrak{m}. It follows that \fp \in \fL_0(k,n) or
\fp \in \fC_1(k,n,j) for some 1 \le j \le 2n + 3. In the former case we
are done, in the latter case the equality to be shown follows from the
definitions of the collections \fC_i and \fL_i.
-
iUnion_L0'[complete] -
pairwiseDisjoint_L0'[complete] -
antichain_L0'[complete]
Uses Lemma 1.11.
We have that
\fL_0(k,n) = \dot{\bigcup_{0 \le l < n}} \fL_0(k,n,l),
where each \fL_0(k,n,l) is an antichain.
Lean code for Lemma1.66●3 theorems
Associated Lean declarations
-
iUnion_L0'[complete]
-
pairwiseDisjoint_L0'[complete]
-
antichain_L0'[complete]
-
iUnion_L0'[complete] -
pairwiseDisjoint_L0'[complete] -
antichain_L0'[complete]
-
theoremdefined in Carleson/Discrete/ForestComplement.leancomplete
theorem iUnion_L0'.{u_1}
iUnion_L0'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} : ⋃ l, ⋃ (_ : l < n), 𝔏₀' k n l = 𝔏₀ k nMain part of Lemma 5.5.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : ⋃ lℕ, ⋃ (_ : lℕ<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.nℕ), 𝔏₀'𝔏₀'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n l : ℕ) : Set (𝔓 X)The subset `𝔏₀(k, n, l)` of `𝔏₀(k, n)`, given in Lemma 5.5.3. We use the name `𝔏₀'` in Lean.kℕnℕlℕ=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.𝔏₀𝔏₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The subset `𝔏₀(k, n)` of `ℭ(k, n)`, given in (5.1.10). Not to be confused with `𝔏₀(k, n, j)` which is called `𝔏₀'` in Lean.kℕnℕtheorem iUnion_L0'.{u_1}
iUnion_L0'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} : ⋃ l, ⋃ (_ : l < n), 𝔏₀' k n l = 𝔏₀ k nMain part of Lemma 5.5.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : ⋃ lℕ, ⋃ (_ : lℕ<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.nℕ), 𝔏₀'𝔏₀'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n l : ℕ) : Set (𝔓 X)The subset `𝔏₀(k, n, l)` of `𝔏₀(k, n)`, given in Lemma 5.5.3. We use the name `𝔏₀'` in Lean.kℕnℕlℕ=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.𝔏₀𝔏₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n : ℕ) : Set (𝔓 X)The subset `𝔏₀(k, n)` of `ℭ(k, n)`, given in (5.1.10). Not to be confused with `𝔏₀(k, n, j)` which is called `𝔏₀'` in Lean.kℕnℕMain part of Lemma 5.5.2.
-
theoremdefined in Carleson/Discrete/ForestComplement.leancomplete
theorem pairwiseDisjoint_L0'.{u_1}
pairwiseDisjoint_L0'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} : Set.univ.PairwiseDisjoint (𝔏₀' k n)Part of Lemma 5.5.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : Set.univSet.univ.{u} {α : Type u} : Set αThe universal set on a type `α` is the set containing all elements of `α`. This is conceptually the "same as" `α` (in set theory, it is actually the same), but type theory makes the distinction that `α` is a type while `Set.univ` is a term of type `Set α`. `Set.univ` can itself be coerced to a type `↥Set.univ` which is in bijection with (but distinct from) `α`..PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.(𝔏₀'𝔏₀'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n l : ℕ) : Set (𝔓 X)The subset `𝔏₀(k, n, l)` of `𝔏₀(k, n)`, given in Lemma 5.5.3. We use the name `𝔏₀'` in Lean.kℕnℕ)theorem pairwiseDisjoint_L0'.{u_1}
pairwiseDisjoint_L0'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n : ℕ} : Set.univ.PairwiseDisjoint (𝔏₀' k n)Part of Lemma 5.5.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : Set.univSet.univ.{u} {α : Type u} : Set αThe universal set on a type `α` is the set containing all elements of `α`. This is conceptually the "same as" `α` (in set theory, it is actually the same), but type theory makes the distinction that `α` is a type while `Set.univ` is a term of type `Set α`. `Set.univ` can itself be coerced to a type `↥Set.univ` which is in bijection with (but distinct from) `α`..PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.(𝔏₀'𝔏₀'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n l : ℕ) : Set (𝔓 X)The subset `𝔏₀(k, n, l)` of `𝔏₀(k, n)`, given in Lemma 5.5.3. We use the name `𝔏₀'` in Lean.kℕnℕ)Part of Lemma 5.5.2
-
theoremdefined in Carleson/Discrete/ForestComplement.leancomplete
theorem antichain_L0'.{u_1}
antichain_L0'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n l : ℕ} : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) (𝔏₀' k n l)Part of Lemma 5.5.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕlℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) (𝔏₀'𝔏₀'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n l : ℕ) : Set (𝔓 X)The subset `𝔏₀(k, n, l)` of `𝔏₀(k, n)`, given in Lemma 5.5.3. We use the name `𝔏₀'` in Lean.kℕnℕlℕ)theorem antichain_L0'.{u_1}
antichain_L0'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n l : ℕ} : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) (𝔏₀' k n l)Part of Lemma 5.5.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕlℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) (𝔏₀'𝔏₀'.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n l : ℕ) : Set (𝔓 X)The subset `𝔏₀(k, n, l)` of `𝔏₀(k, n)`, given in Lemma 5.5.3. We use the name `𝔏₀'` in Lean.kℕnℕlℕ)Part of Lemma 5.5.2
Proof. It suffices to show that \fL_0(k,n) contains no chain of length
n + 1. Suppose that we had such a chain
\fp_0 \le \fp_1 \le \dotsb \le \fp_{n} with
\fp_i \ne \fp_{i+1} for i =0, \dotsc, n-1. By def-cnk, we have that
\dens_k'(\{\fp_n\}) > 2^{-n}. Thus, by eq-densdef, there exists
\fp' \in \fP(k) and \lambda \ge 2 with
\lambda \fp_n \le \lambda \fp' and
\frac{\mu(E_2(\lambda, \fp'))}{\mu(\scI(\fp'))} > \lambda^{a} 2^{4a} 2^{-n}.
Let \mathfrak{O} be the set of all \fp'' \in \fP(k) such that
\scI(\fp'') = \scI(\fp') and
B_{\fp'}(\fcc(\fp'), \lambda) \cap \Omega(\fp'') \neq \emptyset. The balls
B_{\fp'}(\fcc(\fp''), 0.2), \fp'' \in \mathfrak{O} are disjoint by
eq-freq-comp-ball, and by the triangle inequality contained in
B_{\fp'}(\fcc(\fp'), \lambda+1.2). By thirddb, this ball can be covered
with at most 2^{4a}\lambda^a many d_{\fp'}-balls of radius 0.2, so
|\mathfrak{O}| \le 2^{4a}\lambda^a.
By definee1 and definee2 we have
E_2(\lambda, \fp') \subset \bigcup_{\fp'' \in \mathfrak{O}} E_1(\fp''), thus
2^{4a}\lambda^a 2^{-n} < \sum_{\fp'' \in \mathfrak{O}} \frac{\mu(E_1(\fp''))}{\mu(\scI(\fp''))}.
Hence there exists a tile \fp'' \in \mathfrak{O} with
\mu(E_1(\fp'')) \ge 2^{-n} \mu(\scI(\fp')). By the definition mnkmax of
\mathfrak{M}(k,n), there exists a tile
\mathfrak{m} \in \mathfrak{M}(k,n) with \fp' \leq \mathfrak{m}. From the
previous inequality, the inclusion E_2(\lambda, \fp') \subset \scI(\fp') and
a\ge 1 we obtain 2^n \geq 2^{4a} \lambda^{a} \geq \lambda. From the
triangle inequality and Lemma 1.11, it follows for all
\mfa \in B_{\mathfrak{m}}(\fcc(\mathfrak{m}), 1) that
d_{\fp_0}(\fcc(\fp_0), \mfa) is bounded by 100. Thus, by straightorder,
100\fp_0 \lesssim \mathfrak{m}, a contradiction to
\fp_0 \notin \fC(k,n).
-
antichain_L2[complete]
Uses Lemma 1.11.
Each of the sets \fL_2(k,n,j) is an antichain.
Lean code for Lemma1.67●1 theorem
Associated Lean declarations
-
antichain_L2[complete]
-
antichain_L2[complete]
-
theoremdefined in Carleson/Discrete/ForestComplement.leancomplete
theorem antichain_L2.{u_1}
antichain_L2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) (𝔏₂ k n j)Lemma 5.5.3{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) (𝔏₂𝔏₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔏₂(k, n, j)` of `ℭ₂(k, n, j)`, given in (5.1.15).kℕnℕjℕ)theorem antichain_L2.{u_1}
antichain_L2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j : ℕ} : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) (𝔏₂ k n j)Lemma 5.5.3{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) (𝔏₂𝔏₂.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j : ℕ) : Set (𝔓 X)The subset `𝔏₂(k, n, j)` of `ℭ₂(k, n, j)`, given in (5.1.15).kℕnℕjℕ)Lemma 5.5.3
Proof. Suppose that there are \fp_0, \fp_1 \in \fL_2(k,n,j) with
\fp_0 \ne \fp_1 and \fp_0 \le \fp_1. By Lemma 1.45 and
Lemma 1.46, it follows that 2\fp_0 \lesssim 200\fp_1. Since
\fL_2(k,n,j) is finite, there exists a maximal l \ge 1 such that there
exists a chain
2\fp_0 \lesssim 200 \fp_1 \lesssim \dotsb \lesssim 200 \fp_l
with all \fp_i in \fC_1(k,n,j) and \fp_i \ne \fp_{i+1} for
i = 0, \dotsc, l-1. If we have \fp_l \in \fU_1(k,n,j), then it follows
from 2\fp_0 \lesssim 200 \fp_l \lesssim \fp_l and eq-L2-def that
\fp_0 \not\in \fL_2(k,n,j), a contradiction. Thus, by the definition
defunkj of \fU_1(k,n,j), there exists
\fp_{l+1} \in \fC_1(k,n,j) with
\scI(\fp_l) \subsetneq \scI(\fp_{l+1}) and
\mfa \in B_{\fp_l}(\fcc(\fp_l), 100) \cap B_{\fp_{l+1}}(\fcc(\fp_{l+1}), 100).
Using the triangle inequality and Lemma 1.11, one deduces that
200 \fp_l \lesssim 200\fp_{l+1}. This contradicts maximality of l.
-
antichain_L1[complete] -
antichain_L3[complete]
Each of the sets \fL_1(k,n,j,l) and \fL_3(k,n,j,l) is an antichain.
Lean code for Lemma1.68●2 theorems
Associated Lean declarations
-
antichain_L1[complete]
-
antichain_L3[complete]
-
antichain_L1[complete] -
antichain_L3[complete]
-
theoremdefined in Carleson/Discrete/ForestComplement.leancomplete
theorem antichain_L1.{u_1}
antichain_L1.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j l : ℕ} : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) (𝔏₁ k n j l)Part of Lemma 5.5.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕlℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) (𝔏₁𝔏₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j l : ℕ) : Set (𝔓 X)`𝔏₁(k, n, j, l)` consists of the minimal elements in `ℭ₁(k, n, j)` not in `𝔏₁(k, n, j, l')` for some `l' < l`. Defined near (5.1.11).kℕnℕjℕlℕ)theorem antichain_L1.{u_1}
antichain_L1.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j l : ℕ} : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) (𝔏₁ k n j l)Part of Lemma 5.5.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕlℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) (𝔏₁𝔏₁.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j l : ℕ) : Set (𝔓 X)`𝔏₁(k, n, j, l)` consists of the minimal elements in `ℭ₁(k, n, j)` not in `𝔏₁(k, n, j, l')` for some `l' < l`. Defined near (5.1.11).kℕnℕjℕlℕ)Part of Lemma 5.5.4
-
theoremdefined in Carleson/Discrete/ForestComplement.leancomplete
theorem antichain_L3.{u_1}
antichain_L3.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j l : ℕ} : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) (𝔏₃ k n j l)Part of Lemma 5.5.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕlℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) (𝔏₃𝔏₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j l : ℕ) : Set (𝔓 X)`𝔏₃(k, n, j, l)` consists of the maximal elements in `ℭ₃(k, n, j)` not in `𝔏₃(k, n, j, l')` for some `l' < l`. Defined near (5.1.17).kℕnℕjℕlℕ)theorem antichain_L3.{u_1}
antichain_L3.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {k n j l : ℕ} : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) (𝔏₃ k n j l)Part of Lemma 5.5.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {kℕnℕjℕlℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} : IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) (𝔏₃𝔏₃.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (k n j l : ℕ) : Set (𝔓 X)`𝔏₃(k, n, j, l)` consists of the maximal elements in `ℭ₃(k, n, j)` not in `𝔏₃(k, n, j, l')` for some `l' < l`. Defined near (5.1.17).kℕnℕjℕlℕ)Part of Lemma 5.5.4
Proof. By its definition eq-L1-def, each set \fL_1(k,n,j,l) is a set of
minimal elements in some set of tiles with respect to \le. If there were
distinct \fp, \fq \in \fL_1(k,n,j,l) with \fp \le \fq, then \fq
would not be minimal. Hence such \fp, \fq do not exist. Similarly, by
eq-L3-def, each set \fL_3(k,n,j,l) is a set of maximal elements in some
set of tiles with respect to \le. If there were distinct
\fp, \fq \in \fL_3(k,n,j,l) with \fp \le \fq, then \fp would not be
maximal.
We now turn to the proof of Lemma 1.34.
Proof of forest-complement. If \fp \not\in \fP_{G \setminus G'}, then
\mu(\scI(\fp) \cap (G \setminus G')) = 0. By definetp and definee1, it
follows that \mathbf{1}_{G \setminus G'} T_{\fp}f(x) = 0 for almost every
x. We thus have, almost everywhere,
\mathbf{1}_{G\setminus G'} \sum_{\fp \in \fP_2} T_{\fp}f(x) = \mathbf{1}_{G\setminus G'} \sum_{\fp \in \fP_2 \cap \fP_{G \setminus G'}} T_{\fp}f(x).
Let \fL(k,n) denote any of the terms
\fL_i(k,n,j,l) \cap \fP_{G \setminus G'} on the right hand side of
eq-fp'-decomposition, where the indices j, l may be void. Then
\fL(k,n) is an antichain, by Lemma 1.66, Lemma 1.67, and
Lemma 1.68. Further, we have
\dens_1(\fL(k,n)) \le 2^{4a+1 - n}
by Lemma 1.56, and we have
\dens_2(\fL(k,n)) \le 2^{2a+5} \frac{\mu(F)}{\mu(G)},
since
\fL(k,n) \cap \fP_{F,G} \subset \fP_{G \setminus G'} \cap \fP_{F, G} = \emptyset.
Applying now the triangle inequality according to the decomposition coming from
Lemma 1.65, and then applying Theorem 1.6 to each
term, we obtain the estimate
\sum_{k \ge 0} \sum_{n \ge k} (n + (2n+4) + 2(2n+4) (1+Z(n+1))) 2^{117a^3}(q-1)^{-1} (2^{4a+1-n})^{\frac{q-1}{8a^4}} (2^{2a+5} \frac{\mu(F)}{\mu(G)})^{\frac{1}{q} - \frac{1}{2}} \|f\|_2\|\mathbf{1}_{G\setminus G'}\|_2
for the left hand side of forestcompleft. Because |f| \le \mathbf{1}_F,
we have \|f\|_2 \le \mu(F)^{1/2}, and we have
\|\mathbf{1}_{G\setminus G'}\|_2 \le \mu(G)^{1/2}. Using this and
defineZ, we bound
2^{118a^3} (q - 1)^{-1} \mu(F)^{\frac{1}{q}} \mu(G)^{\frac{1}{q'}} \sum_{k \ge 0} \sum_{n \ge k} n^2 2^{-n\frac{q-1}{8a^4}}.
The last sum equals, by changing the order of summation,
\sum_{n \ge 0} n^2(n+1) 2^{-n\frac{q-1}{8a^4}} \le \frac{2^{2a^3}}{(q-1)^4}.
This completes the proof.
1.5.6. Proof of the Antichain Operator Proposition
Let an antichain \mathfrak{A} and functions f, g as in
Theorem 1.6 be given. We prove eq-antiprop in [??] as the
geometric mean of two inequalities, each involving one of the two densities.
One of these two inequalities will need a careful estimate formulated in
Lemma 1.73 of the TT^* correlation between two tile operators.
Lemma 1.73 will be proven in [??].
The summation of the contributions of these individual correlations will require a geometric Lemma 1.74 counting the relevant tile pairs. Lemma 1.74 will be proven in [??].
1.5.7. The density arguments
We begin with the following crucial disjointedness property of the sets
E(\fp) with \fp \in \mathfrak{A}.
-
tile_disjointness[complete]
Let \fp,\fp'\in \mathfrak{A}. If there exists an x\in X with
x\in E(\fp)\cap E(\fp'), then \fp= \fp'.
Lean code for Lemma1.69●1 theorem
Associated Lean declarations
-
tile_disjointness[complete]
-
tile_disjointness[complete]
-
theoremdefined in Carleson/Antichain/Basic.leancomplete
theorem tile_disjointness.{u_1}
tile_disjointness.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) {p p' : 𝔓 X} (hp : p ∈ 𝔄) (hp' : p' ∈ 𝔄) (hE : ¬Disjoint (E p) (E p')) : p = p'Lemma 6.1.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hpp ∈ 𝔄: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔄Set (𝔓 X)) (hp'p' ∈ 𝔄: p'𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔄Set (𝔓 X)) (hE¬Disjoint (E p) (E p'): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X) (EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p'𝔓 X)) : p𝔓 X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.p'𝔓 Xtheorem tile_disjointness.{u_1}
tile_disjointness.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) {p p' : 𝔓 X} (hp : p ∈ 𝔄) (hp' : p' ∈ 𝔄) (hE : ¬Disjoint (E p) (E p')) : p = p'Lemma 6.1.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hpp ∈ 𝔄: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔄Set (𝔓 X)) (hp'p' ∈ 𝔄: p'𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔄Set (𝔓 X)) (hE¬Disjoint (E p) (E p'): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X) (EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p'𝔓 X)) : p𝔓 X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.p'𝔓 XLemma 6.1.1.
Proof. Let \fp,\fp' and x be given. Assume without loss of generality
that \ps(\fp)\le \ps(\fp'). As we have
x\in E(\fp)\subset \scI(\fp) and x\in E(\fp')\subset \scI(\fp') by
definition defineep, we conclude for i=1,2 that
\tQ(x)\in\fc(\fp) and \tQ(x)\in\fc(\fp'). By eq-freq-dyadic we have
\fc(\fp')\subset \fc(\fp). By definition straightorder, we conclude
\fp\le \fp'. As \mathfrak{A} is an antichain, we conclude
\fp=\fp'. This proves the lemma.
Let \mathcal{B} be the collection of balls
B(\pc(\fp), 8D^{\ps(\fp)})
with \fp\in \mathfrak{A} and recall the definition of M_{\mathcal{B}}
from [??].
-
maximal_bound_antichain[complete]
Uses Lemma 1.69.
Let x\in X. Then
| \sum_{\fp \in \mathfrak{A}}T_{\fp} f(x)|\le 2^{102 a^3} M_{\mathcal{B}} f (x).
Lean code for Lemma1.70●1 theorem
Associated Lean declarations
-
maximal_bound_antichain[complete]
-
maximal_bound_antichain[complete]
-
theoremdefined in Carleson/Antichain/Basic.leancomplete
theorem maximal_bound_antichain.{u_1}
maximal_bound_antichain.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) {f : X → ℂ} (hfm : Measurable f) (x : X) : ‖carlesonSum 𝔄 f x‖ₑ ≤ ↑(C6_1_2 a) * MB MeasureTheory.volume 𝔄 𝔠 (fun 𝔭 ↦ 8 * ↑(defaultD a) ^ 𝔰 𝔭) f xLemma 6.1.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfmMeasurable f: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.fX → ℂ) (xX: XType u_1) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.𝔄Set (𝔓 X)fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C6_1_2C6_1_2 (a : ℕ) : ℕConstant appearing in Lemma 6.1.2. Has value `2 ^ (102 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.𝔄Set (𝔓 X)𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : X(fun 𝔭𝔓 X↦ 8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤ𝔭𝔓 X) fX → ℂxXtheorem maximal_bound_antichain.{u_1}
maximal_bound_antichain.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) {f : X → ℂ} (hfm : Measurable f) (x : X) : ‖carlesonSum 𝔄 f x‖ₑ ≤ ↑(C6_1_2 a) * MB MeasureTheory.volume 𝔄 𝔠 (fun 𝔭 ↦ 8 * ↑(defaultD a) ^ 𝔰 𝔭) f xLemma 6.1.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfmMeasurable f: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.fX → ℂ) (xX: XType u_1) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.𝔄Set (𝔓 X)fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C6_1_2C6_1_2 (a : ℕ) : ℕConstant appearing in Lemma 6.1.2. Has value `2 ^ (102 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.𝔄Set (𝔓 X)𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : X(fun 𝔭𝔓 X↦ 8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤ𝔭𝔓 X) fX → ℂxXLemma 6.1.2.
Proof. Fix x\in X. By Lemma 1.69, there is at most one
\fp \in \mathfrak{A} such that T_{\fp} f(x) is not zero. If there is no
such \fp, the estimate hlmbound follows.
Assume there is such a \fp. By definition of T_{\fp} we have
x\in E(\fp)\subset \scI(\fp) and by the squeezing property
eq-vol-sp-cube
\rho(x, \pc(\fp))\le 4D^{\ps(\fp)}.
Let y\in X with K_{\ps(\fp)}(x,y)\neq 0. By definition defks of
K_{\ps(\fp)} we have
\frac{1}{4} D^{\ps(\fp)-1} \leq \rho(x,y) \leq \frac{1}{2} D^{\ps(\fp)}.
The triangle inequality with eqtttt0 and supp-Ks1 implies
\rho(\pc(\fp),y) < 8D^{\ps(\fp)}.
Using the kernel bound eqkernel-size and the lower bound in supp-Ks we
obtain
|K_{\ps(\fp)}(x,y)|\le \frac{2^{a^3}}{\mu(B(x,\frac 14 D^{{\ps(\fp)}-1}))}.
Using D=2^{100a^2} and the doubling property doublingx 5 +100a^2
times estimates the last display by
\frac{2^{5a+101a^3}}{\mu(B(x, 8D^{\ps(\fp)}))},
which, thanks to the closeness of the points x and \pc(\fp) shown in
eqtttt0, is in turn bounded by
\frac{2^{6a+101a^3}}{\mu(B(\pc(\fp), 8D^{\ps(\fp)}))}.
Using that |e(\mfa)| is bounded by 1 for every \mfa\in \Mf, we
estimate with the triangle inequality and the above information
| T_{\fp} f(x)|
\le \frac{2^{6a+101 a^3}}{\mu(B(\pc(\fp), 8D^{\ps(\fp)}))} \int _{\mu(B(\pc(\fp), 8D^{\ps(\fp)}))} |f(y)|\, dy
This together with a\ge 4 proves the lemma.
Set
\tilde{q}=\frac {2q}{1+q}.
Since 1< q\le 2, we have 1<\tilde{q}<q\le 2.
-
dens2_antichain[complete]
Uses Theorem 1.9 and Lemma 1.70.
We have that
\left|\int \overline{g(x)} \sum_{\fp \in \mathfrak{A}} T_{\fp} f(x)\, d\mu(x)\right|\le
2^{103a^3}({q}-1)^{-1} \dens_2(\mathfrak{A})^{\frac 1{\tilde{q}}-\frac 12} \|f\|_2\|g\|_2.
Lean code for Lemma1.71●1 theorem
Associated Lean declarations
-
dens2_antichain[complete]
-
dens2_antichain[complete]
-
theoremdefined in Carleson/Antichain/Basic.leancomplete
theorem dens2_antichain.{u_1}
dens2_antichain.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) {f : X → ℂ} (hfF : ∀ (x : X), ‖f x‖ ≤ F.indicator 1 x) (hf : Measurable f) {g : X → ℂ} (hgG : ∀ (x : X), ‖g x‖ ≤ G.indicator 1 x) (hg : Measurable g) : ‖∫ (x : X), (starRingEnd ℂ) (g x) * carlesonSum 𝔄 f x‖ₑ ≤ ↑(C6_1_3 a (nnq X)) * dens₂ 𝔄 ^ ((2 * ↑(nnq X) / (↑(nnq X) + 1))⁻¹ - 2⁻¹) * MeasureTheory.eLpNorm f 2 MeasureTheory.volume * MeasureTheory.eLpNorm g 2 MeasureTheory.volumeLemma 6.1.3 (inequality 6.1.11).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfF∀ (x : X), ‖f x‖ ≤ F.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (hfMeasurable f: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.fX → ℂ) {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgG∀ (x : X), ‖g x‖ ≤ G.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.gX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.GSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (hgMeasurable g: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.gX → ℂ) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (gX → ℂxX) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.𝔄Set (𝔓 X)fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C6_1_3C6_1_3 (a : ℕ) (q : NNReal) : NNRealConstant appearing in Lemma 6.1.3. Has value `2 ^ (103 * a ^ 3)` in the blueprint.aℕ(nnqnnq.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : NNReal`q` as an element of `ℝ≥0`.XType u_1)) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₂dens₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.𝔄Set (𝔓 X)^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).(HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(nnqnnq.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : NNReal`q` as an element of `ℝ≥0`.XType u_1) /HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑(nnqnnq.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : NNReal`q` as an element of `ℝ≥0`.XType u_1) +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem dens2_antichain.{u_1}
dens2_antichain.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) {f : X → ℂ} (hfF : ∀ (x : X), ‖f x‖ ≤ F.indicator 1 x) (hf : Measurable f) {g : X → ℂ} (hgG : ∀ (x : X), ‖g x‖ ≤ G.indicator 1 x) (hg : Measurable g) : ‖∫ (x : X), (starRingEnd ℂ) (g x) * carlesonSum 𝔄 f x‖ₑ ≤ ↑(C6_1_3 a (nnq X)) * dens₂ 𝔄 ^ ((2 * ↑(nnq X) / (↑(nnq X) + 1))⁻¹ - 2⁻¹) * MeasureTheory.eLpNorm f 2 MeasureTheory.volume * MeasureTheory.eLpNorm g 2 MeasureTheory.volumeLemma 6.1.3 (inequality 6.1.11).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfF∀ (x : X), ‖f x‖ ≤ F.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (hfMeasurable f: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.fX → ℂ) {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgG∀ (x : X), ‖g x‖ ≤ G.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.gX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.GSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (hgMeasurable g: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.gX → ℂ) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (gX → ℂxX) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.𝔄Set (𝔓 X)fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C6_1_3C6_1_3 (a : ℕ) (q : NNReal) : NNRealConstant appearing in Lemma 6.1.3. Has value `2 ^ (103 * a ^ 3)` in the blueprint.aℕ(nnqnnq.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : NNReal`q` as an element of `ℝ≥0`.XType u_1)) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₂dens₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.𝔄Set (𝔓 X)^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).(HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(nnqnnq.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : NNReal`q` as an element of `ℝ≥0`.XType u_1) /HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑(nnqnnq.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : NNReal`q` as an element of `ℝ≥0`.XType u_1) +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Lemma 6.1.3 (inequality 6.1.11).
Proof. We have f=\mathbf{1}_Ff. Using Holder's inequality, we obtain for
each x\in B' and each B'\in \mathcal{B} using 1<\tilde{q}\le 2
\frac 1{\mu(B')}\int_{B'} |f(y)|\, d\mu(y)
\le
\left(\frac 1{\mu(B')}\int_{B'} |f(y)|^{\frac {2{\tilde{q}}}{3\tilde{q}-2}}\, d\mu(y)\right)^{\frac 32-\frac 1{\tilde{q}}}
\left(\frac 1{\mu(B')}\int_{B'} \mathbf{1}_F(y)\, d\mu(y)\right)^{\frac 1{\tilde{q}}-\frac 12}
\le \left(M_{\mathcal{B}} (|f|^{\frac {2{\tilde{q}}}{3{\tilde{q}}-2}})(x)\right)^{\frac 32-\frac 1{\tilde{q}}}
\dens_2(\mathfrak{A})^{\frac 1{\tilde{q}}-\frac 12}.
Taking the maximum over all B' containing x, we obtain
M_{\mathcal{B}}|f|\le
M_{\mathcal{B},\frac {2{\tilde{q}}}{3{\tilde{q}}-2} } |f|
\dens_2(\mathfrak{A})^{\frac 1{\tilde{q}}-\frac 12}.
We have with Theorem 1.9
\left\|M_{\mathcal{B}, \frac {2{\tilde{q}}}{3{\tilde{q}}-2}} f\right\|_2\le 2^{2a}(3\tilde{q}-2)(2\tilde{q}-2)^{-1}\|f\|_2.
Using 1<\tilde{q}\le 2 estimates the last display by
2^{2a+2} (\tilde{q}-1)^{-1} \|f\|_2.
We obtain with Cauchy-Schwarz and then Lemma 1.70
|\int \overline{g(x)} \sum_{\fp \in \mathfrak{A}} T_{\fp} f(x)\, d\mu(x)|
\le \|g\|_2 \Big\| \sum_{\fp \in \mathfrak{A}} T_{\fp} f \Big\|_2
\le 2^{102a^3}\|g\|_2 \| M_{\mathcal{B}}f \|_2.
With eqttt1 and eqttt2 we can estimate the last display by
\le 2^{102a^3+2a+2}(\tilde{q}-1)^{-1} \|g\|_2 \|f\|_2\dens_2(\mathfrak{A})^{\frac 1{\tilde{q}}-\frac 12}
Using a\ge 4 and
(\tilde q - 1)^{-1} = (q+1)/(q-1) \le 3(q-1)^{-1} proves the lemma.
-
dens1_antichain[complete]
Uses Theorem 1.9, Lemma 1.73, and Lemma 1.74.
Set p:=4a^4. We have
\left|\int \overline{g(x)} \sum_{\fp \in \mathfrak{A}} T_{\fp} f(x)\, d\mu(x)\right|\le
2^{117a^3}\dens_1(\mathfrak{A})^{\frac 1{2p}} \|f\|_2\|g\|_2.
Lean code for Lemma1.72●1 theorem
Associated Lean declarations
-
dens1_antichain[complete]
-
dens1_antichain[complete]
-
theoremdefined in Carleson/Antichain/AntichainOperator.leancomplete
theorem dens1_antichain.{u_1}
dens1_antichain.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} {f g : X → ℂ} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) (hf : Measurable f) (hfF : ∀ (x : X), ‖f x‖ ≤ F.indicator 1 x) (hg : Measurable g) (hgG : ∀ (x : X), ‖g x‖ ≤ G.indicator 1 x) : ‖∫ (x : X), (starRingEnd ℂ) (g x) * carlesonSum 𝔄 f x‖ₑ ≤ ↑(C6_1_4 a) * dens₁ 𝔄 ^ (8 * ↑a ^ 4)⁻¹ * MeasureTheory.eLpNorm f 2 MeasureTheory.volume * MeasureTheory.eLpNorm g 2 MeasureTheory.volumeLemma 6.1.4.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} {fX → ℂgX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) (hfMeasurable f: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.fX → ℂ) (hfF∀ (x : X), ‖f x‖ ≤ F.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (hgMeasurable g: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.gX → ℂ) (hgG∀ (x : X), ‖g x‖ ≤ G.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.gX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.GSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (gX → ℂxX) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.𝔄Set (𝔓 X)fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C6_1_4C6_1_4 (a : ℕ) : NNRealConstant appearing in Lemma 6.1.4. Has value `2 ^ (117 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.𝔄Set (𝔓 X)^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑aℕ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.4)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem dens1_antichain.{u_1}
dens1_antichain.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} {f g : X → ℂ} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) (hf : Measurable f) (hfF : ∀ (x : X), ‖f x‖ ≤ F.indicator 1 x) (hg : Measurable g) (hgG : ∀ (x : X), ‖g x‖ ≤ G.indicator 1 x) : ‖∫ (x : X), (starRingEnd ℂ) (g x) * carlesonSum 𝔄 f x‖ₑ ≤ ↑(C6_1_4 a) * dens₁ 𝔄 ^ (8 * ↑a ^ 4)⁻¹ * MeasureTheory.eLpNorm f 2 MeasureTheory.volume * MeasureTheory.eLpNorm g 2 MeasureTheory.volumeLemma 6.1.4.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} {fX → ℂgX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) (hfMeasurable f: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.fX → ℂ) (hfF∀ (x : X), ‖f x‖ ≤ F.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (hgMeasurable g: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.gX → ℂ) (hgG∀ (x : X), ‖g x‖ ≤ G.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.gX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.GSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (gX → ℂxX) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.𝔄Set (𝔓 X)fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(C6_1_4C6_1_4 (a : ℕ) : NNRealConstant appearing in Lemma 6.1.4. Has value `2 ^ (117 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.𝔄Set (𝔓 X)^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑aℕ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.4)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Lemma 6.1.4.
Proof. We write for the expression inside the absolute values on the left-hand
side of eqttt3
\sum_{\fp \in \mathfrak{A}}\iint \overline{g(x)} \mathbf{1}_{E(\fp)}(x)
{K_{\ps(\fp)}(x,y)}e(\tQ(x)(y) -
\tQ(x)(x))
f(y)\, d\mu(y)\,d\mu(x)
=\int \sum_{\fp \in \mathfrak{A}} \overline{T_{\fp} ^*g(y)} f(y)\, d\mu(y)
with the adjoint operator
T_{\fp}^*g(y)=\int_{E(\fp)} \overline{K_{\ps(\fp)}(x,y)}e(-\tQ(x)(y)+
\tQ(x)(x))g(x)\, d\mu(x).
We have by expanding the square
\int \Big|\sum_{\fp\in \mathfrak{A}}T^*_{\fp}g(y)\Big|^2\, d\mu(y)=
\int \left(\sum_{\fp\in \mathfrak{A}} T^*_{\fp}g(y)\right)
\left(\sum_{\fp'\in \mathfrak{A}}\overline{T^*_{\fp'}g(y)}\right)\, d\mu(y)
\le \sum_{\fp\in \mathfrak{A}} \sum_{\fp'\in \mathfrak{A}}
\Big|\int T^*_{\fp}g(y)\overline{T^*_{\fp'}g(y)}\, d\mu(y)\Big|.
We split the sum into the terms with \ps(\fp')\le \ps(\fp) and
\ps(\fp)< \ps(\fp'). Using the symmetry of each summand, we may switch
\fp and \fp' in the second sum. Using further positivity of each summand
to replace the condition \ps(\fp')< \ps(\fp) by \ps(\fp')\le \ps(\fp)
in the second sum, we estimate eqtts1 by
\le2 \sum_{\fp\in \mathfrak{A}} \sum_{\fp'\in \mathfrak{A}: \ps(\fp')\le \ps(\fp)}
\Big|\int T^*_{\fp}g(y)\overline{T^*_{\fp'}g(y)}\, d\mu(y)\Big|.
Define for \fp\in \fP
B(\fp):=B(\pc(\fp), 14D^{\ps(\fp)})
and define
\mathfrak{A}(\fp):=\{\fp'\in\mathfrak{A}: \ps(\fp')\leq \ps(\fp) \land \scI(\fp') \subset B(\fp)\}.
Note that by the squeezing property eq-vol-sp-cube and the doubling property
doublingx applied 6 times we have
\mu(B(\fp))\le 2^{6a} \mu(\scI(\fp)).
Using Lemma 1.73 and eqttt4, we estimate eqtts2 by
\le 2^{232a^3+6a+1} \sum_{\fp\in \mathfrak{A}}
\int_{E(\fp)}|g|(y) h(\fp)\, d\mu(y)
with h(\fp) defined as
\frac 1{\mu(B(\fp))}\int \sum_{\fp'\in \mathfrak{A}(\fp)}
{(1+d_{\fp'}(\fcc(\fp'), \fcc(\fp))^{-1/(2a^2+a^3)}}(\mathbf{1}_{E(\fp')}|g|)(y')\, d\mu(y').
Note that p>4 since a\ge 4. Let p' be the dual exponent of p,
satisfying 1/p+1/p'=1. We estimate h(\fp) as defined in def-hp with
Holder using |g|\le \mathbf{1}_G and E(\fp')\subset B(\fp) by
\frac{\|g\mathbf{1}_{B(\fp)}\|_{p'}}{\mu(B(\fp))}
\Big\|\sum_{\fp\in\mathfrak{A}(\fp)}(1+d_{\fp}(\fcc(\fp), \fcc(\fp'))^{-1/(2a^2+a^3)}\mathbf{1}_{E(\fp)}\mathbf{1}_G\Big\|_{p}.
Then we apply Lemma 1.74 to estimate this by
\le 2^{5a}
\frac{\|g\mathbf{1}_{B(\fp)}\|_{p'}}{\mu(B(\fp))}
\dens_1(\mathfrak{A})^{\frac 1p}\mu(B(\fp))^{\frac 1p}.
Let \mathcal{B}' be the collection of all balls B(\fp) with
\fp\in \mathfrak{A}. Then for each \fp\in \mathfrak{A} and
x\in B(\fp) we have by definition def-hlm of M_{\mathcal{B}',p'}
\|g\mathbf{1}_{B(\fp)}\|_{p'}\le
\mu(B(\fp))^{\frac 1{p'}} M_{\mathcal{B}',p'}g(x).
Hence we can estimate eqttt5 by
\le
2^{5a}
(M_{\mathcal{B}', p'}g(x))
\dens_1(\mathfrak{A})^{\frac 1p}.
With this estimate of h(\fp), using E(\fp)\subset B(\fp) by construction
of B(\fp), we estimate eqtts3 by
\le 2^{232a^3+11a + 1} { \dens_1(\mathfrak{A})^{\frac 1p}}\sum_{\fp\in \mathfrak{A}}
\int_{E(\fp)}|g|(y)M_{\mathcal{B}', p'}g(y) \, dy.
Using Lemma 1.69, the last display is observed to be
\le 2^{232a^3+11a + 1}
{\dens_1(\mathfrak{A})^{\frac 1p}} \int |g|(y)(M_{\mathcal{B}', p'}g)(y) \, dy.
Applying Cauchy-Schwarz and using Theorem 1.9 and
1<p'<\frac 32 estimates the last display by
\le 2^{232a^3+11a + 1} \dens_1(\mathfrak{A})^{\frac 1p}
\|g\|_2 \|M_{\mathcal{B}', p'} g\|_2
\le 2^{232a^3+12a+3} \dens_1(\mathfrak{A})^{\frac 1p}\|g\|_2 ^2.
Now Lemma 1.72 follows by applying Cauchy-Schwarz on the left-hand side
and using a\ge 4.
The following basic TT^* estimate will be proved in [??].
-
Tile.correlation_le[complete] -
Tile.correlation_zero_of_ne_subset[complete]
Uses Theorem 1.8, Lemma 1.75, Lemma 1.77, and Lemma 1.76.
Let \fp, \fp'\in \fP with \ps({\fp'})\leq \ps({\fp}). Then
\left|\int T^*_{\fp'}g\overline{T^*_{\fp}g}\right|
\le 2^{232a^3}\frac{(1+d_{\fp'}(\fcc(\fp'), \fcc(\fp))^{-1/(2a^2+a^3)}}{\mu(\scI(\fp))}\int_{E(\fp')}|g|\int_{E(\fp)}|g|.
Moreover, the term eq-basic-TT*-est vanishes unless
\scI(\fp') \subset B(\pc(\fp), 14D^{\ps(\fp)}).
Lean code for Lemma1.73●2 theorems
Associated Lean declarations
-
Tile.correlation_le[complete]
-
Tile.correlation_zero_of_ne_subset[complete]
-
Tile.correlation_le[complete] -
Tile.correlation_zero_of_ne_subset[complete]
-
theoremdefined in Carleson/Antichain/TileCorrelation.leancomplete
theorem Tile.correlation_le.{u_1}
Tile.correlation_le.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} (hle : 𝔰 p' ≤ 𝔰 p) {g : X → ℂ} (hg : Measurable g) (hg1 : ∀ (x : X), ‖g x‖ ≤ G.indicator 1 x) : ‖∫ (y : X), adjointCarleson p' g y * (starRingEnd ℂ) (adjointCarleson p g y)‖ₑ ≤ (↑(Tile.C6_1_5 a) * (1 + edist_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') (𝒬 p)) ^ (-(2 * ↑a ^ 2 + ↑a ^ 3)⁻¹) / MeasureTheory.volume ↑(𝓘 p) * ∫⁻ (y : X) in E p', ‖g y‖ₑ) * ∫⁻ (y : X) in E p, ‖g y‖ₑPart 1 of Lemma 6.1.5 (eq. 6.1.43).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hle𝔰 p' ≤ 𝔰 p: 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X) {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgMeasurable g: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.gX → ℂ) (hg1∀ (x : X), ‖g x‖ ≤ G.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.gX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.GSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(yX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraladjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p'𝔓 XgX → ℂyX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XgX → ℂyX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(Tile.C6_1_5Tile.C6_1_5 (a : ℕ) : NNRealThe constant from lemma 6.1.5. Has value `2 ^ (232 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.edist_{EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp'𝔓 X,EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp'𝔓 X) (𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp𝔓 X))HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).-Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑aℕ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑aℕ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.)Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator)./HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(yX: XType u_1) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p'𝔓 X,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.gX → ℂyX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(yX: XType u_1) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.gX → ℂyX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.theorem Tile.correlation_le.{u_1}
Tile.correlation_le.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} (hle : 𝔰 p' ≤ 𝔰 p) {g : X → ℂ} (hg : Measurable g) (hg1 : ∀ (x : X), ‖g x‖ ≤ G.indicator 1 x) : ‖∫ (y : X), adjointCarleson p' g y * (starRingEnd ℂ) (adjointCarleson p g y)‖ₑ ≤ (↑(Tile.C6_1_5 a) * (1 + edist_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') (𝒬 p)) ^ (-(2 * ↑a ^ 2 + ↑a ^ 3)⁻¹) / MeasureTheory.volume ↑(𝓘 p) * ∫⁻ (y : X) in E p', ‖g y‖ₑ) * ∫⁻ (y : X) in E p, ‖g y‖ₑPart 1 of Lemma 6.1.5 (eq. 6.1.43).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hle𝔰 p' ≤ 𝔰 p: 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X) {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgMeasurable g: MeasurableMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) : PropA function `f` between measurable spaces is measurable if the preimage of every measurable set is measurable.gX → ℂ) (hg1∀ (x : X), ‖g x‖ ≤ G.indicator 1 x: ∀ (xX: XType u_1), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.gX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.GSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(yX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraladjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p'𝔓 XgX → ℂyX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XgX → ℂyX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(Tile.C6_1_5Tile.C6_1_5 (a : ℕ) : NNRealThe constant from lemma 6.1.5. Has value `2 ^ (232 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.edist_{EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp'𝔓 X,EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp'𝔓 X) (𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp𝔓 X))HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).-Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑aℕ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑aℕ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.)Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator)./HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(yX: XType u_1) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p'𝔓 X,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.gX → ℂyX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(yX: XType u_1) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.gX → ℂyX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.Part 1 of Lemma 6.1.5 (eq. 6.1.43).
-
theoremdefined in Carleson/Antichain/TileCorrelation.leancomplete
theorem Tile.correlation_zero_of_ne_subset.{u_1}
Tile.correlation_zero_of_ne_subset.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} (hle : 𝔰 p' ≤ 𝔰 p) {g : X → ℂ} (hp : ¬↑(𝓘 p') ⊆ Metric.ball (𝔠 p) (14 * ↑(defaultD a) ^ 𝔰 p)) : ‖∫ (y : X), adjointCarleson p' g y * (starRingEnd ℂ) (adjointCarleson p g y)‖ₑ = 0Part 2 of Lemma 6.1.5 (claim 6.1.44).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hle𝔰 p' ≤ 𝔰 p: 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X) {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hp¬↑(𝓘 p') ⊆ Metric.ball (𝔠 p) (14 * ↑(defaultD a) ^ 𝔰 p): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.14 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(yX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraladjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p'𝔓 XgX → ℂyX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XgX → ℂyX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.0theorem Tile.correlation_zero_of_ne_subset.{u_1}
Tile.correlation_zero_of_ne_subset.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p p' : 𝔓 X} (hle : 𝔰 p' ≤ 𝔰 p) {g : X → ℂ} (hp : ¬↑(𝓘 p') ⊆ Metric.ball (𝔠 p) (14 * ↑(defaultD a) ^ 𝔰 p)) : ‖∫ (y : X), adjointCarleson p' g y * (starRingEnd ℂ) (adjointCarleson p g y)‖ₑ = 0Part 2 of Lemma 6.1.5 (claim 6.1.44).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hle𝔰 p' ≤ 𝔰 p: 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X) {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hp¬↑(𝓘 p') ⊆ Metric.ball (𝔠 p) (14 * ↑(defaultD a) ^ 𝔰 p): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.14 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(yX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraladjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p'𝔓 XgX → ℂyX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XgX → ℂyX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.0Part 2 of Lemma 6.1.5 (claim 6.1.44).
The following lemma will be proved in [??].
-
Antichain.tile_count[complete]
Uses Lemma 1.81.
Set p:=4a^4. For every \mfa\in\Mf and every antichain
\mathfrak{A} we have
\Big\|\sum_{\fp\in\mathfrak{A}}(1+d_{\fp}(\fcc(\fp), \mfa))^{-1/(2a^2+a^3)}\mathbf{1}_{E(\fp)}\mathbf{1}_G\Big\|_{p}
\le
2^{5a}\dens_1(\mathfrak{A})^{\frac 1p}\mu\left(\cup_{\fp\in\mathfrak{A}}I_{\fp}\right)^{\frac 1p}.
Lean code for Lemma1.74●1 theorem
Associated Lean declarations
-
Antichain.tile_count[complete]
-
Antichain.tile_count[complete]
-
theoremdefined in Carleson/Antichain/AntichainTileCount.leancomplete
theorem Antichain.tile_count.{u_1}
Antichain.tile_count.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) (ϑ : ↑(Set.range ⇑Q)) : MeasureTheory.eLpNorm (fun x ↦ ∑ p with p ∈ 𝔄, (1 + edist_{𝔠 p, ↑(defaultD a) ^ 𝔰 p / 4} (𝒬 p) ↑ϑ) ^ (-(2 * ↑a ^ 2 + ↑a ^ 3)⁻¹) * (E p).indicator 1 x * G.indicator 1 x) (ENNReal.ofReal (Antichain.p₆ a)) MeasureTheory.volume ≤ ↑(Antichain.C6_1_6 a) * dens₁ 𝔄 ^ (Antichain.p₆ a)⁻¹ * MeasureTheory.volume (⋃ p ∈ 𝔄, ↑(𝓘 p)) ^ (Antichain.p₆ a)⁻¹Lemma 6.1.6.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) (ϑ↑(Set.range ⇑Q): ↑(Set.rangeSet.range.{u, u_1} {α : Type u} {ι : Sort u_1} (f : ι → α) : Set αRange of a function. This function is more flexible than `f '' univ`, as the image requires that the domain is in Type and not an arbitrary Sort.⇑QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X))) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ ∑ p𝔓 Xwith p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔄Set (𝔓 X), (HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.edist_{EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X,EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp𝔓 X) ↑ϑ↑(Set.range ⇑Q))HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).-Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑aℕ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑aℕ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.)Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.GSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (ENNReal.ofRealENNReal.ofReal (r : ℝ) : ENNReal`ofReal x` returns `x` if it is nonnegative, `0` otherwise.(Antichain.p₆Antichain.p₆ (a : ℕ) : ℝ`p` in Lemma 6.1.6. We append a subscript `₆` to keep `p` available for tiles.aℕ)) MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(Antichain.C6_1_6Antichain.C6_1_6 (a : ℕ) : NNRealThe constant appearing in Lemma 6.1.6.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.𝔄Set (𝔓 X)^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(Antichain.p₆Antichain.p₆ (a : ℕ) : ℝ`p` in Lemma 6.1.6. We append a subscript `₆` to keep `p` available for tiles.aℕ)⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(⋃ p𝔓 X∈ 𝔄Set (𝔓 X), ↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X)) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(Antichain.p₆Antichain.p₆ (a : ℕ) : ℝ`p` in Lemma 6.1.6. We append a subscript `₆` to keep `p` available for tiles.aℕ)⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.theorem Antichain.tile_count.{u_1}
Antichain.tile_count.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) (ϑ : ↑(Set.range ⇑Q)) : MeasureTheory.eLpNorm (fun x ↦ ∑ p with p ∈ 𝔄, (1 + edist_{𝔠 p, ↑(defaultD a) ^ 𝔰 p / 4} (𝒬 p) ↑ϑ) ^ (-(2 * ↑a ^ 2 + ↑a ^ 3)⁻¹) * (E p).indicator 1 x * G.indicator 1 x) (ENNReal.ofReal (Antichain.p₆ a)) MeasureTheory.volume ≤ ↑(Antichain.C6_1_6 a) * dens₁ 𝔄 ^ (Antichain.p₆ a)⁻¹ * MeasureTheory.volume (⋃ p ∈ 𝔄, ↑(𝓘 p)) ^ (Antichain.p₆ a)⁻¹Lemma 6.1.6.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) (ϑ↑(Set.range ⇑Q): ↑(Set.rangeSet.range.{u, u_1} {α : Type u} {ι : Sort u_1} (f : ι → α) : Set αRange of a function. This function is more flexible than `f '' univ`, as the image requires that the domain is in Type and not an arbitrary Sort.⇑QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X))) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ ∑ p𝔓 Xwith p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝔄Set (𝔓 X), (HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.edist_{EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X,EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp𝔓 X) ↑ϑ↑(Set.range ⇑Q))HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).-Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑aℕ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑aℕ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.)Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.GSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) (ENNReal.ofRealENNReal.ofReal (r : ℝ) : ENNReal`ofReal x` returns `x` if it is nonnegative, `0` otherwise.(Antichain.p₆Antichain.p₆ (a : ℕ) : ℝ`p` in Lemma 6.1.6. We append a subscript `₆` to keep `p` available for tiles.aℕ)) MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(Antichain.C6_1_6Antichain.C6_1_6 (a : ℕ) : NNRealThe constant appearing in Lemma 6.1.6.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.𝔄Set (𝔓 X)^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(Antichain.p₆Antichain.p₆ (a : ℕ) : ℝ`p` in Lemma 6.1.6. We append a subscript `₆` to keep `p` available for tiles.aℕ)⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(⋃ p𝔓 X∈ 𝔄Set (𝔓 X), ↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X)) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(Antichain.p₆Antichain.p₆ (a : ℕ) : ℝ`p` in Lemma 6.1.6. We append a subscript `₆` to keep `p` available for tiles.aℕ)⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.Lemma 6.1.6.
From these lemmas it is easy to prove Theorem 1.6.
Proof of Theorem 1.6. We have
\left(\frac 1{\tilde{q}} -\frac 12\right) (2-q)= \frac 1q -\frac 12.
Multiplying the (2-q)-th power of eqttt9 and the (q-1)-th power of
eqttt3 and estimating gives after simplification of some factors
\Big|\int \overline{g(x)} \sum_{\fp \in \mathfrak{A}} T_{\fp} f(x)\, d\mu(x)\Big|
\le 2^{117a^3}(q-1)^{-1} \dens_1(\mathfrak{A})^{\frac {q-1}{2p}}\dens_2(\mathfrak{A})^{\frac 1{q}-\frac 12} \|f\|_2\|g\|_2.
With the definition of p, this implies Theorem 1.6.
1.5.8. Proof of the Tile Correlation Lemma
The next lemma prepares an application of Theorem 1.8.
-
Tile.correlation[complete] -
Tile.mem_ball_of_correlation_ne_zero[complete] -
Tile.correlation_kernel_bound[complete]
Let -S\le s_1\le s_2\le S and let x_1,x_2\in X. Define
\varphi(y) := \overline{K_{s_1}(x_1, y)}
K_{s_2}(x_2, y).
If \varphi(y)\neq 0, then
y\in B(x_1, D^{s_1}).
Moreover, we have with \tau = 1/a
\|\varphi\|_{C^\tau(B(x_1, 2 D^{s_1}))}\le
\frac{2^{231 a^3}}{\mu(B(x_1, D^{s_1}))\mu(B(x_2, D^{s_2}))}.
Lean code for Lemma1.75●3 declarations
Associated Lean declarations
-
Tile.correlation[complete]
-
Tile.mem_ball_of_correlation_ne_zero[complete]
-
Tile.correlation_kernel_bound[complete]
-
Tile.correlation[complete] -
Tile.mem_ball_of_correlation_ne_zero[complete] -
Tile.correlation_kernel_bound[complete]
-
defdefined in Carleson/Antichain/TileCorrelation.leancomplete
def Tile.correlation.{u_1}
Tile.correlation.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (s₁ s₂ : ℤ) (x₁ x₂ y : X) : ℂDef 6.2.1 (from Lemma 6.2.1), denoted by `φ(y)` in the blueprint.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] (s₁ℤs₂ℤ: ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).) (x₁Xx₂XyX: XType u_1) : ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.def Tile.correlation.{u_1}
Tile.correlation.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (s₁ s₂ : ℤ) (x₁ x₂ y : X) : ℂDef 6.2.1 (from Lemma 6.2.1), denoted by `φ(y)` in the blueprint.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] (s₁ℤs₂ℤ: ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).) (x₁Xx₂XyX: XType u_1) : ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.Def 6.2.1 (from Lemma 6.2.1), denoted by `φ(y)` in the blueprint.
-
theoremdefined in Carleson/Antichain/TileCorrelation.leancomplete
theorem Tile.mem_ball_of_correlation_ne_zero.{u_1}
Tile.mem_ball_of_correlation_ne_zero.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] {s₁ s₂ : ℤ} {x₁ x₂ y : X} (hy : Tile.correlation s₁ s₂ x₁ x₂ y ≠ 0) : y ∈ Metric.ball x₁ (↑(defaultD a) ^ s₁)First part of Lemma 6.2.1 (eq. 6.2.2).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] {s₁ℤs₂ℤ: ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {x₁Xx₂XyX: XType u_1} (hyTile.correlation s₁ s₂ x₁ x₂ y ≠ 0: Tile.correlationTile.correlation.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (s₁ s₂ : ℤ) (x₁ x₂ y : X) : ℂDef 6.2.1 (from Lemma 6.2.1), denoted by `φ(y)` in the blueprint.s₁ℤs₂ℤx₁Xx₂XyX≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.0) : yX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`x₁X(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.s₁ℤ)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.theorem Tile.mem_ball_of_correlation_ne_zero.{u_1}
Tile.mem_ball_of_correlation_ne_zero.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] {s₁ s₂ : ℤ} {x₁ x₂ y : X} (hy : Tile.correlation s₁ s₂ x₁ x₂ y ≠ 0) : y ∈ Metric.ball x₁ (↑(defaultD a) ^ s₁)First part of Lemma 6.2.1 (eq. 6.2.2).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] {s₁ℤs₂ℤ: ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {x₁Xx₂XyX: XType u_1} (hyTile.correlation s₁ s₂ x₁ x₂ y ≠ 0: Tile.correlationTile.correlation.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (s₁ s₂ : ℤ) (x₁ x₂ y : X) : ℂDef 6.2.1 (from Lemma 6.2.1), denoted by `φ(y)` in the blueprint.s₁ℤs₂ℤx₁Xx₂XyX≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.0) : yX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`x₁X(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.s₁ℤ)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.First part of Lemma 6.2.1 (eq. 6.2.2).
-
theoremdefined in Carleson/Antichain/TileCorrelation.leancomplete
theorem Tile.correlation_kernel_bound.{u_1}
Tile.correlation_kernel_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] {s₁ s₂ : ℤ} {x₁ x₂ : X} (hs : s₁ ≤ s₂) : iHolENorm (Tile.correlation s₁ s₂ x₁ x₂) x₁ (2 * ↑(defaultD a) ^ s₁) (defaultτ a) ≤ ↑(Tile.C6_2_1 a) / (MeasureTheory.volume (Metric.ball x₁ (↑(defaultD a) ^ s₁)) * MeasureTheory.volume (Metric.ball x₂ (↑(defaultD a) ^ s₂)))Second part of Lemma 6.2.1 (eq. 6.2.3).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] {s₁ℤs₂ℤ: ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {x₁Xx₂X: XType u_1} (hss₁ ≤ s₂: s₁ℤ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.s₂ℤ) : iHolENormiHolENorm.{u_1, u_2} {𝕜 : Type u_1} {X : Type u_2} [PseudoMetricSpace X] [NormedField 𝕜] (φ : X → 𝕜) (x₀ : X) (R t : ℝ) : ENNRealthe L^∞-normalized t-Hölder norm. Defined in ℝ≥0∞ to avoid sup-related issues.(Tile.correlationTile.correlation.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (s₁ s₂ : ℤ) (x₁ x₂ y : X) : ℂDef 6.2.1 (from Lemma 6.2.1), denoted by `φ(y)` in the blueprint.s₁ℤs₂ℤx₁Xx₂X) x₁X(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.s₁ℤ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(defaultτdefaultτ (a : ℕ) : ℝ`defaultτ` is the inverse of `a`.aℕ) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(Tile.C6_2_1Tile.C6_2_1 (a : ℕ) : NNRealThe constant from lemma 6.2.1. Has value `2 ^ (231 * a ^ 3)` in the blueprint.aℕ) /HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`x₁X(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.s₁ℤ)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`x₂X(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.s₂ℤ)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.theorem Tile.correlation_kernel_bound.{u_1}
Tile.correlation_kernel_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] {s₁ s₂ : ℤ} {x₁ x₂ : X} (hs : s₁ ≤ s₂) : iHolENorm (Tile.correlation s₁ s₂ x₁ x₂) x₁ (2 * ↑(defaultD a) ^ s₁) (defaultτ a) ≤ ↑(Tile.C6_2_1 a) / (MeasureTheory.volume (Metric.ball x₁ (↑(defaultD a) ^ s₁)) * MeasureTheory.volume (Metric.ball x₂ (↑(defaultD a) ^ s₂)))Second part of Lemma 6.2.1 (eq. 6.2.3).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] {s₁ℤs₂ℤ: ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {x₁Xx₂X: XType u_1} (hss₁ ≤ s₂: s₁ℤ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.s₂ℤ) : iHolENormiHolENorm.{u_1, u_2} {𝕜 : Type u_1} {X : Type u_2} [PseudoMetricSpace X] [NormedField 𝕜] (φ : X → 𝕜) (x₀ : X) (R t : ℝ) : ENNRealthe L^∞-normalized t-Hölder norm. Defined in ℝ≥0∞ to avoid sup-related issues.(Tile.correlationTile.correlation.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (s₁ s₂ : ℤ) (x₁ x₂ y : X) : ℂDef 6.2.1 (from Lemma 6.2.1), denoted by `φ(y)` in the blueprint.s₁ℤs₂ℤx₁Xx₂X) x₁X(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.s₁ℤ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(defaultτdefaultτ (a : ℕ) : ℝ`defaultτ` is the inverse of `a`.aℕ) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(Tile.C6_2_1Tile.C6_2_1 (a : ℕ) : NNRealThe constant from lemma 6.2.1. Has value `2 ^ (231 * a ^ 3)` in the blueprint.aℕ) /HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`x₁X(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.s₁ℤ)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`x₂X(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.s₂ℤ)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Second part of Lemma 6.2.1 (eq. 6.2.3).
Proof. If \varphi(y) is not zero, then K_{s_1}(x_1, y) is not zero and
thus supp-Ks gives eqt10.
We next have for y with eq-Ks-size
|\varphi(y)|\le
\frac{2^{204 a^3}}{\mu(B(x_1, D^{s_1}))\mu(B(x_2, D^{s_2}))}
and for y'\neq y additionally with eq-Ks-smooth
|\varphi(y)-\varphi(y')|
\le
|K_{s_1}(x_1,y)-K_{s_1}(x_1,y')||
K_{s_2}(x_2, y)|
+|K_{s_1}(x_1, y')|
|K_{s_2}(x_2, y) - K_{s_2}(x_2, y')|
\le \frac{2^{229 a^3}}{\mu(B(x_1, D^{s_1}))\mu(B(x_2, D^{s_2}))}
\left(\left(\frac{ \rho(y,y')}{D^{s_1}}\right)^{1/a}+
\left(\frac{ \rho(y,y')}{D^{s_2}}\right)^{1/a}\right)
\le \frac{2^{230 a^3}}{\mu(B(x_1, D^{s_1}))\mu(B(x_2, D^{s_2}))}
\left(\frac{ \rho(y,y')}{D^{s_1}}\right)^{1/a}.
Adding the estimates suppart and holderpart gives eqt11. This proves
the lemma.
The following auxiliary statement about the support of T_\fp^*g will be
used repeatedly.
-
Tile.range_support[complete]
For each \fp\in \fP, and each y\in X, we have that
T_{\fp}^* g(y)\neq 0
implies
y\in B(\pc(\fp),5D^{\ps(\fp)}).
Lean code for Lemma1.76●1 theorem
Associated Lean declarations
-
Tile.range_support[complete]
-
Tile.range_support[complete]
-
theoremdefined in Carleson/Antichain/TileCorrelation.leancomplete
theorem Tile.range_support.{u_1}
Tile.range_support.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p : 𝔓 X} {g : X → ℂ} {y : X} (hpy : adjointCarleson p g y ≠ 0) : y ∈ Metric.ball (𝔠 p) (5 * ↑(defaultD a) ^ 𝔰 p)Lemma 6.2.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {yX: XType u_1} (hpyadjointCarleson p g y ≠ 0: adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XgX → ℂyX≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.0) : yX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.5 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.theorem Tile.range_support.{u_1}
Tile.range_support.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p : 𝔓 X} {g : X → ℂ} {y : X} (hpy : adjointCarleson p g y ≠ 0) : y ∈ Metric.ball (𝔠 p) (5 * ↑(defaultD a) ^ 𝔰 p)Lemma 6.2.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {yX: XType u_1} (hpyadjointCarleson p g y ≠ 0: adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XgX → ℂyX≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.0) : yX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.5 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Lemma 6.2.2.
Proof. Fix \fp and y with tstargnot0. Then there exists
x\in E(\fp) with
\overline{K_{\ps(\fp)}(x,y)}e(-\tQ(x)(y)
+\tQ(x)(x))g(x) \neq 0.
As E(\fp)\subset \scI(\fp) and by the squeezing property eq-vol-sp-cube,
we have
\rho(x,\pc(\fp)) < 4D^{\ps(\fp)}.
As K_{\ps(\fp)}(x,y)\neq 0, we have by supp-Ks that
\rho(x,y)\le \frac 12 D^{\ps(\fp)}.
Now ynotfar follows by the triangle inequality.
The next lemma is a geometric estimate for two tiles.
-
Tile.uncertainty[complete]
Uses Lemma 1.11 and Lemma 1.76.
Let \fp_1, \fp_2\in \fP with
B(\pc(\fp_1),5D^{\ps(\fp_1)}) \cap B(\pc(\fp_2),5D^{\ps(\fp_2)}) \ne \emptyset
and \ps({\fp_1})\leq \ps({\fp_2}). For each x_1\in E(\fp_1) and
x_2\in E(\fp_2) we have
1+d_{\fp_1}(\fcc(\fp_1), \fcc(\fp_2))\le
2^{8a}(1 + d_{B(x_1, D^{\ps(\fp_1)})}(\tQ(x_1),\tQ(x_2))).
Lean code for Lemma1.77●1 theorem
Associated Lean declarations
-
Tile.uncertainty[complete]
-
Tile.uncertainty[complete]
-
theoremdefined in Carleson/Antichain/TileCorrelation.leancomplete
theorem Tile.uncertainty.{u_1}
Tile.uncertainty.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ha : 1 ≤ a) {p₁ p₂ : 𝔓 X} (hle : 𝔰 p₁ ≤ 𝔰 p₂) (hinter : (Metric.ball (𝔠 p₁) (5 * ↑(defaultD a) ^ 𝔰 p₁) ∩ Metric.ball (𝔠 p₂) (5 * ↑(defaultD a) ^ 𝔰 p₂)).Nonempty) {x₁ x₂ : X} (hx₁ : x₁ ∈ E p₁) (hx₂ : x₂ ∈ E p₂) : 1 + edist_{𝔠 p₁, ↑(defaultD a) ^ 𝔰 p₁ / 4} (𝒬 p₁) (𝒬 p₂) ≤ ↑(Tile.C6_2_3 a) * (1 + edist_{x₁, ↑(defaultD a) ^ 𝔰 p₁} (Q x₁) (Q x₂))Lemma 6.2.3 (edist version).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] (ha1 ≤ a: 1 ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.aℕ) {p₁𝔓 Xp₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hle𝔰 p₁ ≤ 𝔰 p₂: 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₂𝔓 X) (hinter(Metric.ball (𝔠 p₁) (5 * ↑(defaultD a) ^ 𝔰 p₁) ∩ Metric.ball (𝔠 p₂) (5 * ↑(defaultD a) ^ 𝔰 p₂)).Nonempty: (Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp₁𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.5 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₁𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp₂𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.5 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₂𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`..NonemptySet.Nonempty.{u} {α : Type u} (s : Set α) : PropThe property `s.Nonempty` expresses the fact that the set `s` is not empty. It should be used in theorem assumptions instead of `∃ x, x ∈ s` or `s ≠ ∅` as it gives access to a nice API thanks to the dot notation.) {x₁Xx₂X: XType u_1} (hx₁x₁ ∈ E p₁: x₁X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p₁𝔓 X) (hx₂x₂ ∈ E p₂: x₂X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p₂𝔓 X) : 1 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.edist_{EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp₁𝔓 X,EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₁𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp₁𝔓 X) (𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp₂𝔓 X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(Tile.C6_2_3Tile.C6_2_3 (a : ℕ) : NNRealThe constant from lemma 6.2.3.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.edist_{EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two pointsx₁X,EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₁𝔓 X}EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)x₁X) (QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)x₂X))HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.theorem Tile.uncertainty.{u_1}
Tile.uncertainty.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ha : 1 ≤ a) {p₁ p₂ : 𝔓 X} (hle : 𝔰 p₁ ≤ 𝔰 p₂) (hinter : (Metric.ball (𝔠 p₁) (5 * ↑(defaultD a) ^ 𝔰 p₁) ∩ Metric.ball (𝔠 p₂) (5 * ↑(defaultD a) ^ 𝔰 p₂)).Nonempty) {x₁ x₂ : X} (hx₁ : x₁ ∈ E p₁) (hx₂ : x₂ ∈ E p₂) : 1 + edist_{𝔠 p₁, ↑(defaultD a) ^ 𝔰 p₁ / 4} (𝒬 p₁) (𝒬 p₂) ≤ ↑(Tile.C6_2_3 a) * (1 + edist_{x₁, ↑(defaultD a) ^ 𝔰 p₁} (Q x₁) (Q x₂))Lemma 6.2.3 (edist version).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] (ha1 ≤ a: 1 ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.aℕ) {p₁𝔓 Xp₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hle𝔰 p₁ ≤ 𝔰 p₂: 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₂𝔓 X) (hinter(Metric.ball (𝔠 p₁) (5 * ↑(defaultD a) ^ 𝔰 p₁) ∩ Metric.ball (𝔠 p₂) (5 * ↑(defaultD a) ^ 𝔰 p₂)).Nonempty: (Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp₁𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.5 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₁𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp₂𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.5 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₂𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`..NonemptySet.Nonempty.{u} {α : Type u} (s : Set α) : PropThe property `s.Nonempty` expresses the fact that the set `s` is not empty. It should be used in theorem assumptions instead of `∃ x, x ∈ s` or `s ≠ ∅` as it gives access to a nice API thanks to the dot notation.) {x₁Xx₂X: XType u_1} (hx₁x₁ ∈ E p₁: x₁X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p₁𝔓 X) (hx₂x₂ ∈ E p₂: x₂X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p₂𝔓 X) : 1 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.edist_{EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp₁𝔓 X,EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₁𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp₁𝔓 X) (𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp₂𝔓 X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(Tile.C6_2_3Tile.C6_2_3 (a : ℕ) : NNRealThe constant from lemma 6.2.3.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1 +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.edist_{EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two pointsx₁X,EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp₁𝔓 X}EDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)x₁X) (QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)x₂X))HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Lemma 6.2.3 (edist version).
Proof. Let i\in \{1,2\}. By definition defineep of E, we have
\tQ(x_i)\in \fc(\fp_i). With eq-freq-comp-ball we then conclude
d_{\fp_i}(\tQ(x_i),\fcc(\fp_i)) < 1.
We have by the triangle inequality and eq-vol-sp-cube that
\scI(\fp_1) \subset B(\pc(\fp_2),14D^{\ps(\fp_2)}). Thus, using again
eq-vol-sp-cube and the doubling property firstdb
d_{\fp_1}(\tQ(x_2), \fcc(\fp_2)) \le 2^{6a} d_{\fp_2}(\tQ(x_2), \fcc(\fp_2)) \le 2^{6a}.
By the triangle inequality, we obtain from dponetwo and tgeo0.5
1+d_{\fp_1}(\fcc(\fp_1), \fcc(\fp_2))\le 2 + 2^{6a} +d_{\fp_1}(\tQ(x_1), \tQ(x_2)).
As x_1\in \scI(\fp_1) by definition defineep of E, we have by the
squeezing property eq-vol-sp-cube
d(x_1,\pc(\fp_1))\le 4D^{\ps(\fp_1)}
and thus by eq-vol-sp-cube again and the triangle inequality
\scI(\fp_1)\subset B(x_1,8D^{\ps(\fp_1)}).
We thus estimate the right-hand side of tgeo1 with monotonicity
monotonedb of the metrics d_B by
\le 2 + 2^{6a} + d_{B(x_1,8D^{\ps(\fp_1)})}(\tQ(x_1), \tQ(x_2)).
This is further estimated by applying the doubling property firstdb three
times by
\le 2 + 2^{6a} +2^{3a}d_{B_1(x_1, D^{\ps(\fp_1)})}(\tQ(x_1), \tQ(x_2)).
Now tgeo follows with a\ge 4.
We now prove Lemma 1.73.
Proof of Lemma 1.73. We begin with eq-basic-TT*-est. By
Lemma 1.76, the left-hand side of eq-basic-TT*-est vanishes if
B(\pc(\fp'),5D^{\ps(\fp')}) \cap B(\pc(\fp),5D^{\ps(\fp)}) = \emptyset.
Thus we can assume for the remainder of the proof that
B(\pc(\fp'),5D^{\ps(\fp')}) \cap B(\pc(\fp),5D^{\ps(\fp)}) \neq \emptyset.
We expand the left-hand side of eq-basic-TT*-est as
\left|\int \int_{E(\fp')} \overline{K_{\ps(\fp')}(x_1,y)}e(-\tQ(x_1)(y)+
\tQ(x_1)(x_1))g(x_1)\, d\mu(x_1) \right.
\times \left.\int_{E(\fp)} {K_{\ps(\fp)}(x_2,y)}e(\tQ(x_2)(y)
-\tQ(x_2)(x_2))\overline{g(x_2)}\, d\mu(x_2)\, d\mu(y)\right|.
By Fubini and the triangle inequality and the fact
|e(\tQ(x_i)(x_i))|=1 for i=1,2, we can estimate tstartstar and
tstartstar' from above by
\int_{E(\fp')} \int_{E(\fp)} {\bf I}(x_1, x_2)\, d\mu(x_1)d\mu(x_2),
with
{\bf I}(x_1, x_2):=
\left|\int
e(-\tQ(x_1)(y)+\tQ(x_2)(y))\varphi_{x_1,x_2}(y)
d\mu(y) \, g(x_1)g(x_2)\right|.
We estimate for fixed x_1\in E(\fp') and x_2\in E(\fp) the inner
integral of eqa1 with Theorem 1.8. The function
\varphi:=\varphi_{x_1,x_2} satisfies the assumptions of
Theorem 1.8 with z = x_1 and R = D^{s_1} by
Lemma 1.75. We obtain with
B':= B(x_1, D^{\ps(\fp')})
{\bf I}(x_1, x_2) \le 2^{8a} \mu(B') \|{\varphi}\|_{C^\tau(B')}
(1 + d_{B'}(\tQ(x_1),\tQ(x_2)))^{-1/(2a^2+a^3)}|g(x_1)g(x_2)|
\le \frac{2^{231a^3+8a}}
{\mu(B(x_2, D^{\ps(\fp)}))}
(1 + d_{B'}(\tQ(x_1),\tQ(x_2)))^{-1/(2a^2+a^3)}.
Using intersec5B, Lemma 1.77 and a\ge 1 estimates eqa1.5 by
\le \frac{2^{231a^3 + 8a + 1}}
{\mu(B(x_2, D^{\ps(\fp)}))}
(1+d_{\fp'}(\fcc(\fp'), \fcc(\fp)))^{-1/(2a^2+a^3)}|g(x_1)g(x_2)|.
As x_2\in \scI(\fp) by definition defineep of E, we have by
eq-vol-sp-cube
\rho(x_2,\pc(\fp)) < 4D^{\ps(\fp)}
and thus by eq-vol-sp-cube again and the triangle inequality
\scI(\fp)\subset B(x_2,8D^{\ps(\fp)}).
Using three iterations of the doubling property doublingx give
\mu(\scI(\fp))\le 2^{3a}\mu(B(x_2,D^{\ps(\fp)})).
With a\ge 4 and eqa2 we conclude eq-basic-TT*-est.
Now assume the left-hand side of eq-basic-TT*-est is not zero. There is a
y\in X with
T^*_{\fp'}g(y)\overline{T^*_{\fp}g(y)}\neq 0
By the triangle inequality and Lemma 1.76, we conclude
\rho(\pc(\fp),\pc(\fp'))\le \rho(\pc(\fp),y) +\rho(\pc(\fp'),y)
\le 5D^{\ps(\fp)}+5D^{\ps(\fp')}\le 10 D^{\ps(\fp)}.
By the squeezing property eq-vol-sp-cube and the triangle inequality, we
conclude
\scI(\fp') \subset B(\pc(\fp), 14D^{\ps(\fp)}).
This completes the proof of Lemma 1.73.
1.5.9. Proof of the Antichain Tile Count Lemma
-
Antichain.tile_reach[complete]
Uses Lemma 1.11.
Let \mfa\in \Mf and N\ge0 be an integer. Let \fp, \fp'\in \fP with
d_{\fp}(\fcc(\fp), \mfa)\le 2^N
d_{\fp'}(\fcc(\fp'), \mfa)\le 2^N.
Assume \scI(\fp)\subset \scI(\fp') and \ps(\fp)<\ps(\fp'). Then
2^{N+2}\fp\lesssim 2^{N+2} \fp'.
Lean code for Lemma1.78●1 theorem
Associated Lean declarations
-
Antichain.tile_reach[complete]
-
Antichain.tile_reach[complete]
-
theoremdefined in Carleson/Antichain/AntichainTileCount.leancomplete
theorem Antichain.tile_reach.{u_1}
Antichain.tile_reach.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {ϑ : Θ X} {N : ℕ} {p p' : 𝔓 X} (hp : dist_{𝔠 p, ↑(defaultD a) ^ 𝔰 p / 4} (𝒬 p) ϑ ≤ 2 ^ N) (hp' : dist_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') ϑ ≤ 2 ^ N) (hI : 𝓘 p ≤ 𝓘 p') (hs : 𝔰 p < 𝔰 p') : smul (2 ^ (N + 2)) p ≤ smul (2 ^ (N + 2)) p'Lemma 6.3.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {ϑΘ X: ΘFunctionDistances.Θ.{u, u_3} {𝕜 : outParam (Type u_3)} (X : Type u) {inst✝ : NormedField 𝕜} {inst✝¹ : TopologicalSpace X} [self : FunctionDistances 𝕜 X] : Type uA type of continuous functions from `X` to `𝕜`.XType u_1} {Nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hpdist_{𝔠 p, ↑(defaultD a) ^ 𝔰 p / 4} (𝒬 p) ϑ ≤ 2 ^ N: dist_{Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X,Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp𝔓 X) ϑΘ X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.Nℕ) (hp'dist_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') ϑ ≤ 2 ^ N: dist_{Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp'𝔓 X,Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp'𝔓 X) ϑΘ X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.Nℕ) (hI𝓘 p ≤ 𝓘 p': 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) (hs𝔰 p < 𝔰 p': 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.2)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.2)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.p'𝔓 Xtheorem Antichain.tile_reach.{u_1}
Antichain.tile_reach.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {ϑ : Θ X} {N : ℕ} {p p' : 𝔓 X} (hp : dist_{𝔠 p, ↑(defaultD a) ^ 𝔰 p / 4} (𝒬 p) ϑ ≤ 2 ^ N) (hp' : dist_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') ϑ ≤ 2 ^ N) (hI : 𝓘 p ≤ 𝓘 p') (hs : 𝔰 p < 𝔰 p') : smul (2 ^ (N + 2)) p ≤ smul (2 ^ (N + 2)) p'Lemma 6.3.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {ϑΘ X: ΘFunctionDistances.Θ.{u, u_3} {𝕜 : outParam (Type u_3)} (X : Type u) {inst✝ : NormedField 𝕜} {inst✝¹ : TopologicalSpace X} [self : FunctionDistances 𝕜 X] : Type uA type of continuous functions from `X` to `𝕜`.XType u_1} {Nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hpdist_{𝔠 p, ↑(defaultD a) ^ 𝔰 p / 4} (𝒬 p) ϑ ≤ 2 ^ N: dist_{Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X,Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp𝔓 X) ϑΘ X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.Nℕ) (hp'dist_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') ϑ ≤ 2 ^ N: dist_{Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp'𝔓 X,Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp'𝔓 X) ϑΘ X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.Nℕ) (hI𝓘 p ≤ 𝓘 p': 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) (hs𝔰 p < 𝔰 p': 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X) : smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.2)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.p𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.smulsmul.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : TileLike XThis is not defined as such in the blueprint, but `λp ≲ λ'p'` can be written using `smul l p ≤ smul l' p'`. Beware: `smul 1 p` is very different from `toTileLike p`.(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.2)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.p'𝔓 XLemma 6.3.1.
Proof. By Lemma 1.11, we have
d_{\fp}(\fcc(\fp'),\mfa)
\le d_{\fp'}(\fcc(\fp'),\mfa)
\le 2^{N}.
Together with eqassumedismfa and the triangle inequality, we obtain
d_{\fp}(\fcc(\fp'),\fcc(\fp))\le 2^{N+1}.
Now assume
\mfa'\in B_{\fp'}(\fcc(\fp'),2^{N+2}).
By the doubling property firstdb, applied five times, we have
d_{B(\pc(\fp'),8D^{\ps(\fp')})}(\fcc(\fp'),\mfa') < 2^{5a+N+2}.
We have by the squeezing property eq-vol-sp-cube
\pc(\fp)\in
B(\pc(\fp'),4D^{\ps(\fp')}).
Hence by the triangle inequality
B(\pc(\fp), 4D^{\ps(\fp')})
\subseteq
B(\pc(\fp'),8D^{\ps(\fp')}).
Together with ageo1 and monotonicity monotonedb of d
d_{B(\pc(\fp),4D^{\ps(\fp')})}(\fcc(\fp'),\mfa') < 2^{5a+N+2}.
Using the doubling property seconddb 5a+2 times gives
d_{B(\pc(\fp),2^{2-5a^2-2a}D^{\ps(\fp')})}(\fcc(\fp'),\mfa') < 2^{N}.
Using \ps(\fp)<\ps(\fp') and D=2^{100a^2} and a\ge 4 gives
d_{\fp}(\fcc(\fp'),\mfa') < 2^{N}.
With the triangle inequality and eqdistqpqp,
d_{\fp}(\fcc(\fp),\mfa') < 2^{N+2}.
This shows
B_{\fp'}(\fcc(\fp'),2^{N+2})\subset B_{\fp}(\fcc(\fp),2^{N+2}).
This implies lp'lp'' and completes the proof of the lemma.
For \mfa \in \Mf and N\ge 0 define
\mathfrak{A}_{\mfa,N}:=\{\fp\in\mathfrak{A}: 2^{N}\le 1+d_{\fp}(\fcc(\fp), \mfa) < 2^{N+1}\}.
-
Antichain.stack_density[complete]
Let \mfa \in \Mf, N\ge 0 and L\in \mathcal{D}. Then
\sum_{\fp\in\mathfrak{A}_{\mfa,N}:\scI(\fp)=L}\mu(E(\fp)\cap G)\le 2^{a(N+5)}\dens_1(\mathfrak{A})\mu(L).
Lean code for Lemma1.79●1 theorem
Associated Lean declarations
-
Antichain.stack_density[complete]
-
Antichain.stack_density[complete]
-
theoremdefined in Carleson/Antichain/AntichainTileCount.leancomplete
theorem Antichain.stack_density.{u_1}
Antichain.stack_density.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔄 : Set (𝔓 X)) (ϑ : Θ X) (N : ℕ) (L : Grid X) : ∑ p ∈ (Antichain.𝔄_aux 𝔄 ϑ N).toFinset with 𝓘 p = L, MeasureTheory.volume (E p ∩ G) ≤ 2 ^ (a * (N + 5)) * dens₁ 𝔄 * MeasureTheory.volume ↑LLemma 6.3.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] (𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)) (ϑΘ X: ΘFunctionDistances.Θ.{u, u_3} {𝕜 : outParam (Type u_3)} (X : Type u) {inst✝ : NormedField 𝕜} {inst✝¹ : TopologicalSpace X} [self : FunctionDistances 𝕜 X] : Type uA type of continuous functions from `X` to `𝕜`.XType u_1) (Nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) (LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1) : ∑ p𝔓 X∈ (Antichain.𝔄_auxAntichain.𝔄_aux.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔄 : Set (𝔓 X)) (ϑ : Θ X) (N : ℕ) : Set (𝔓 X)Def 6.3.15.𝔄Set (𝔓 X)ϑΘ XNℕ).toFinsetSet.toFinset.{u_1} {α : Type u_1} (s : Set α) [Fintype ↑s] : Finset αConstruct a finset enumerating a set `s`, given a `Fintype` instance.with 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.LGrid X, MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.GSet X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.aℕ*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.5)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.𝔄Set (𝔓 X)*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑LGrid Xtheorem Antichain.stack_density.{u_1}
Antichain.stack_density.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔄 : Set (𝔓 X)) (ϑ : Θ X) (N : ℕ) (L : Grid X) : ∑ p ∈ (Antichain.𝔄_aux 𝔄 ϑ N).toFinset with 𝓘 p = L, MeasureTheory.volume (E p ∩ G) ≤ 2 ^ (a * (N + 5)) * dens₁ 𝔄 * MeasureTheory.volume ↑LLemma 6.3.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] (𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)) (ϑΘ X: ΘFunctionDistances.Θ.{u, u_3} {𝕜 : outParam (Type u_3)} (X : Type u) {inst✝ : NormedField 𝕜} {inst✝¹ : TopologicalSpace X} [self : FunctionDistances 𝕜 X] : Type uA type of continuous functions from `X` to `𝕜`.XType u_1) (Nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) (LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1) : ∑ p𝔓 X∈ (Antichain.𝔄_auxAntichain.𝔄_aux.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔄 : Set (𝔓 X)) (ϑ : Θ X) (N : ℕ) : Set (𝔓 X)Def 6.3.15.𝔄Set (𝔓 X)ϑΘ XNℕ).toFinsetSet.toFinset.{u_1} {α : Type u_1} (s : Set α) [Fintype ↑s] : Finset αConstruct a finset enumerating a set `s`, given a `Fintype` instance.with 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.LGrid X, MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.GSet X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.aℕ*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.5)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.𝔄Set (𝔓 X)*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑LGrid XLemma 6.3.2.
Proof. Let \mfa,N,L be given and set
\mathfrak{A}':=\{\fp\in\mathfrak{A}_{\mfa,N}:\scI(\fp)=L\}.
Let \fp\in\mathfrak{A}'. We have by definition definedens1 using
\lambda=2 and the squeezing property eq-freq-comp-ball
\mu(E(\fp)\cap G)\le \mu(E_2(2, \fp))\le 2^{a}\dens_1(\mathfrak{A}')\mu(L).
By the covering property thirddb, applied N+4 times, there is a
collection \Mf' of at most 2^{a(N+4)} elements such that
B_{\fp}(\mfa, 2^{N+1})\subset \bigcup_{\mfa'\in \Mf'}
B_{\fp}(\mfa', 0.2).
As each \fcc(\fp') with \fp'\in \mathfrak{A}' is contained in the
left-hand side of eqanti-4 by definition, it is in at least one
B_{\fp}(\mfa', 0.2) with \mfa'\in \Mf'.
For two different \fp',\fp''\in \mathfrak{A}', we have by
eq-dis-freq-cover that \fc(\fp') and \fc(\fp'') are disjoint and thus
by the squeezing property eq-freq-comp-ball we have for every
\mfa'\in \Mf'
\mfa'\not\in B_{\fp}(\fcc(\fp'), 0.2)\cap
B_{\fp}(\fcc(\fp''), 0.2).
Hence at most one of \fcc(\fp') and \fcc(\fp'') is in
B_{\fp}(\mfa', 0.2). It follows that there are at most 2^{a(N+4)}
elements in \mathfrak{A}'. Adding eqanti-3 over \mathfrak{A}' proves
eqanti-1.
-
Antichain.local_antichain_density[complete] -
Antichain.Ep_inter_G_inter_Ip'_subset_E2[complete]
Uses Lemma 1.69 and Lemma 1.78.
Let \mfa\in\Mf and N be an integer. Let \fp_{\mfa} be a tile with
\mfa\in B_{\fp_{\mfa}}(\fcc(\fp_{\mfa}), 2^{N+1}). Then we have
\sum_{\fp\in\mathfrak{A}_{\mfa,N}: \ps(\fp_{\mfa})<\ps(\fp)}\mu(E(\fp)\cap G \cap \scI(\fp_{\mfa}))
\le \mu (E_2(2^{N+3},\fp_{\mfa})).
Lean code for Lemma1.80●2 theorems
Associated Lean declarations
-
Antichain.local_antichain_density[complete]
-
Antichain.Ep_inter_G_inter_Ip'_subset_E2[complete]
-
Antichain.local_antichain_density[complete] -
Antichain.Ep_inter_G_inter_Ip'_subset_E2[complete]
-
theoremdefined in Carleson/Antichain/AntichainTileCount.leancomplete
theorem Antichain.local_antichain_density.{u_1}
Antichain.local_antichain_density.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) (ϑ : Θ X) (N : ℕ) {p' : 𝔓 X} (hp' : ϑ ∈ ball_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') (2 ^ (N + 1))) : ∑ p ∈ (Antichain.𝔄_aux 𝔄 ϑ N).toFinset with 𝔰 p' < 𝔰 p, MeasureTheory.volume (E p ∩ G ∩ ↑(𝓘 p')) ≤ MeasureTheory.volume (E₂ (2 ^ (N + 3)) p')Lemma 6.3.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) (ϑΘ X: ΘFunctionDistances.Θ.{u, u_3} {𝕜 : outParam (Type u_3)} (X : Type u) {inst✝ : NormedField 𝕜} {inst✝¹ : TopologicalSpace X} [self : FunctionDistances 𝕜 X] : Type uA type of continuous functions from `X` to `𝕜`.XType u_1) (Nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) {p'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hp'ϑ ∈ ball_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') (2 ^ (N + 1)): ϑΘ X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.ball_{Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp'𝔓 X,Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp'𝔓 X) (HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.) : ∑ p𝔓 X∈ (Antichain.𝔄_auxAntichain.𝔄_aux.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔄 : Set (𝔓 X)) (ϑ : Θ X) (N : ℕ) : Set (𝔓 X)Def 6.3.15.𝔄Set (𝔓 X)ϑΘ XNℕ).toFinsetSet.toFinset.{u_1} {α : Type u_1} (s : Set α) [Fintype ↑s] : Finset αConstruct a finset enumerating a set `s`, given a `Fintype` instance.with 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X, MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.GSet X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X))Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(E₂E₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : Set X(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.p'𝔓 X)theorem Antichain.local_antichain_density.{u_1}
Antichain.local_antichain_density.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) (ϑ : Θ X) (N : ℕ) {p' : 𝔓 X} (hp' : ϑ ∈ ball_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') (2 ^ (N + 1))) : ∑ p ∈ (Antichain.𝔄_aux 𝔄 ϑ N).toFinset with 𝔰 p' < 𝔰 p, MeasureTheory.volume (E p ∩ G ∩ ↑(𝓘 p')) ≤ MeasureTheory.volume (E₂ (2 ^ (N + 3)) p')Lemma 6.3.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) (ϑΘ X: ΘFunctionDistances.Θ.{u, u_3} {𝕜 : outParam (Type u_3)} (X : Type u) {inst✝ : NormedField 𝕜} {inst✝¹ : TopologicalSpace X} [self : FunctionDistances 𝕜 X] : Type uA type of continuous functions from `X` to `𝕜`.XType u_1) (Nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) {p'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hp'ϑ ∈ ball_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') (2 ^ (N + 1)): ϑΘ X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.ball_{Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp'𝔓 X,Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp'𝔓 X) (HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.) : ∑ p𝔓 X∈ (Antichain.𝔄_auxAntichain.𝔄_aux.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔄 : Set (𝔓 X)) (ϑ : Θ X) (N : ℕ) : Set (𝔓 X)Def 6.3.15.𝔄Set (𝔓 X)ϑΘ XNℕ).toFinsetSet.toFinset.{u_1} {α : Type u_1} (s : Set α) [Fintype ↑s] : Finset αConstruct a finset enumerating a set `s`, given a `Fintype` instance.with 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X, MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.GSet X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X))Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(E₂E₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : Set X(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.p'𝔓 X)Lemma 6.3.3.
-
theoremdefined in Carleson/Antichain/AntichainTileCount.leancomplete
theorem Antichain.Ep_inter_G_inter_Ip'_subset_E2.{u_1}
Antichain.Ep_inter_G_inter_Ip'_subset_E2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (ϑ : Θ X) (N : ℕ) {p p' : 𝔓 X} (hpin : p ∈ (Antichain.𝔄_aux 𝔄 ϑ N).toFinset) (hp' : ϑ ∈ ball_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') (2 ^ (N + 1))) (hs : 𝔰 p' < 𝔰 p) (h𝓘 : (↑(𝓘 p') ∩ ↑(𝓘 p)).Nonempty) : E p ∩ G ∩ ↑(𝓘 p') ⊆ E₂ (2 ^ (N + 3)) p'We prove inclusion 6.3.24 for every `p ∈ (𝔄_aux 𝔄 ϑ N)` with `𝔰 p' < 𝔰 p` such that `(𝓘 p : Set X) ∩ (𝓘 p') ≠ ∅`. The variable `p'` corresponds to `𝔭_ϑ` in the blueprint.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (ϑΘ X: ΘFunctionDistances.Θ.{u, u_3} {𝕜 : outParam (Type u_3)} (X : Type u) {inst✝ : NormedField 𝕜} {inst✝¹ : TopologicalSpace X} [self : FunctionDistances 𝕜 X] : Type uA type of continuous functions from `X` to `𝕜`.XType u_1) (Nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hpinp ∈ (Antichain.𝔄_aux 𝔄 ϑ N).toFinset: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(Antichain.𝔄_auxAntichain.𝔄_aux.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔄 : Set (𝔓 X)) (ϑ : Θ X) (N : ℕ) : Set (𝔓 X)Def 6.3.15.𝔄Set (𝔓 X)ϑΘ XNℕ).toFinsetSet.toFinset.{u_1} {α : Type u_1} (s : Set α) [Fintype ↑s] : Finset αConstruct a finset enumerating a set `s`, given a `Fintype` instance.) (hp'ϑ ∈ ball_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') (2 ^ (N + 1)): ϑΘ X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.ball_{Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp'𝔓 X,Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp'𝔓 X) (HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.) (hs𝔰 p' < 𝔰 p: 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X) (h𝓘(↑(𝓘 p') ∩ ↑(𝓘 p)).Nonempty: (Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) ∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X))Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`..NonemptySet.Nonempty.{u} {α : Type u} (s : Set α) : PropThe property `s.Nonempty` expresses the fact that the set `s` is not empty. It should be used in theorem assumptions instead of `∃ x, x ∈ s` or `s ≠ ∅` as it gives access to a nice API thanks to the dot notation.) : EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.GSet X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.E₂E₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : Set X(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.p'𝔓 Xtheorem Antichain.Ep_inter_G_inter_Ip'_subset_E2.{u_1}
Antichain.Ep_inter_G_inter_Ip'_subset_E2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (ϑ : Θ X) (N : ℕ) {p p' : 𝔓 X} (hpin : p ∈ (Antichain.𝔄_aux 𝔄 ϑ N).toFinset) (hp' : ϑ ∈ ball_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') (2 ^ (N + 1))) (hs : 𝔰 p' < 𝔰 p) (h𝓘 : (↑(𝓘 p') ∩ ↑(𝓘 p)).Nonempty) : E p ∩ G ∩ ↑(𝓘 p') ⊆ E₂ (2 ^ (N + 3)) p'We prove inclusion 6.3.24 for every `p ∈ (𝔄_aux 𝔄 ϑ N)` with `𝔰 p' < 𝔰 p` such that `(𝓘 p : Set X) ∩ (𝓘 p') ≠ ∅`. The variable `p'` corresponds to `𝔭_ϑ` in the blueprint.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (ϑΘ X: ΘFunctionDistances.Θ.{u, u_3} {𝕜 : outParam (Type u_3)} (X : Type u) {inst✝ : NormedField 𝕜} {inst✝¹ : TopologicalSpace X} [self : FunctionDistances 𝕜 X] : Type uA type of continuous functions from `X` to `𝕜`.XType u_1) (Nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) {p𝔓 Xp'𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hpinp ∈ (Antichain.𝔄_aux 𝔄 ϑ N).toFinset: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(Antichain.𝔄_auxAntichain.𝔄_aux.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔄 : Set (𝔓 X)) (ϑ : Θ X) (N : ℕ) : Set (𝔓 X)Def 6.3.15.𝔄Set (𝔓 X)ϑΘ XNℕ).toFinsetSet.toFinset.{u_1} {α : Type u_1} (s : Set α) [Fintype ↑s] : Finset αConstruct a finset enumerating a set `s`, given a `Fintype` instance.) (hp'ϑ ∈ ball_{𝔠 p', ↑(defaultD a) ^ 𝔰 p' / 4} (𝒬 p') (2 ^ (N + 1)): ϑΘ X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.ball_{Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp'𝔓 X,Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.4}Metric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xp'𝔓 X) (HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.1)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.) (hs𝔰 p' < 𝔰 p: 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp'𝔓 X<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X) (h𝓘(↑(𝓘 p') ∩ ↑(𝓘 p)).Nonempty: (Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) ∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X))Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`..NonemptySet.Nonempty.{u} {α : Type u} (s : Set α) : PropThe property `s.Nonempty` expresses the fact that the set `s` is not empty. It should be used in theorem assumptions instead of `∃ x, x ∈ s` or `s ≠ ∅` as it gives access to a nice API thanks to the dot notation.) : EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.GSet X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp'𝔓 X) ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.E₂E₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (l : ℝ) (p : 𝔓 X) : Set X(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Nℕ+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.p'𝔓 XWe prove inclusion 6.3.24 for every `p ∈ (𝔄_aux 𝔄 ϑ N)` with `𝔰 p' < 𝔰 p` such that `(𝓘 p : Set X) ∩ (𝓘 p') ≠ ∅`. The variable `p'` corresponds to `𝔭_ϑ` in the blueprint.
Proof. Let \fp be any tile in \mathfrak{A}_{\mfa,N} with
\ps(\fp_{\mfa})<\ps(\fp). By definition of E, the tile contributes zero
to the sum on the left-hand side of eqanti-0.5 unless
\scI(\fp)\cap \scI(\fp_{\mfa}) \neq \emptyset, which we may assume. With
\ps(\fp_{\mfa})<\ps(\fp) and the dyadic property dyadicproperty we
conclude \scI(\fp_{\mfa})\subset \scI(\fp). We conclude from
\fp \in \mathfrak{A}_{\mfa,N} that
\mfa \in B_\fp(\fcc(\fp), 2^{N+1}).
With Lemma 1.78 and the assumption on \fp_\mfa, we conclude
2^{N+3}\fp_{\mfa} \lesssim 2^{N+3}\fp.
By definition definee2 of E_2, we conclude
E(\fp)\cap G \cap \scI(\fp_{\mfa}) \subset E_2(2^{N+3},\fp_{\mfa}).
Using disjointedness of the various E(\fp) with \fp\in \mathfrak{A} by
Lemma 1.69, we obtain eqanti-0.5. This proves the lemma.
-
Antichain.global_antichain_density[complete]
Uses Lemma 1.79 and Lemma 1.80.
Let \mfa\in Q(X) and let N\ge 0 be an integer. Then we have
\sum_{\fp\in\mathfrak{A}_{\mfa,N}}\mu(E(\fp)\cap G)
\le
2^{101a^3+Na}\dens_1(\mathfrak{A})\mu\left(\cup_{\fp\in\mathfrak{A}}I_{\fp}\right).
Lean code for Lemma1.81●1 theorem
Associated Lean declarations
-
Antichain.global_antichain_density[complete]
-
Antichain.global_antichain_density[complete]
-
theoremdefined in Carleson/Antichain/AntichainTileCount.leancomplete
theorem Antichain.global_antichain_density.{u_1}
Antichain.global_antichain_density.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) (ϑ : ↑(Set.range ⇑Q)) (N : ℕ) : ∑ p ∈ (Antichain.𝔄_aux 𝔄 (↑ϑ) N).toFinset, MeasureTheory.volume (E p ∩ G) ≤ ↑(Antichain.C6_3_4 a N) * dens₁ 𝔄 * MeasureTheory.volume (⋃ p ∈ 𝔄, ↑(𝓘 p))Lemma 6.3.4.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) (ϑ↑(Set.range ⇑Q): ↑(Set.rangeSet.range.{u, u_1} {α : Type u} {ι : Sort u_1} (f : ι → α) : Set αRange of a function. This function is more flexible than `f '' univ`, as the image requires that the domain is in Type and not an arbitrary Sort.⇑QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X))) (Nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) : ∑ p𝔓 X∈ (Antichain.𝔄_auxAntichain.𝔄_aux.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔄 : Set (𝔓 X)) (ϑ : Θ X) (N : ℕ) : Set (𝔓 X)Def 6.3.15.𝔄Set (𝔓 X)(↑ϑ↑(Set.range ⇑Q)) Nℕ).toFinsetSet.toFinset.{u_1} {α : Type u_1} (s : Set α) [Fintype ↑s] : Finset αConstruct a finset enumerating a set `s`, given a `Fintype` instance., MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.GSet X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(Antichain.C6_3_4Antichain.C6_3_4 (a N : ℕ) : NNRealThe constant appearing in Lemma 6.3.4.aℕNℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.𝔄Set (𝔓 X)*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(⋃ p𝔓 X∈ 𝔄Set (𝔓 X), ↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X))theorem Antichain.global_antichain_density.{u_1}
Antichain.global_antichain_density.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔄 : Set (𝔓 X)} (h𝔄 : IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄) (ϑ : ↑(Set.range ⇑Q)) (N : ℕ) : ∑ p ∈ (Antichain.𝔄_aux 𝔄 (↑ϑ) N).toFinset, MeasureTheory.volume (E p ∩ G) ≤ ↑(Antichain.C6_3_4 a N) * dens₁ 𝔄 * MeasureTheory.volume (⋃ p ∈ 𝔄, ↑(𝓘 p))Lemma 6.3.4.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔄Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} (h𝔄IsAntichain (fun x1 x2 ↦ x1 ≤ x2) 𝔄: IsAntichainIsAntichain.{u_1} {α : Type u_1} (r : α → α → Prop) (s : Set α) : PropAn antichain is a set such that no two distinct elements are related.(fun x1𝔓 Xx2𝔓 X↦ x1𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.x2𝔓 X) 𝔄Set (𝔓 X)) (ϑ↑(Set.range ⇑Q): ↑(Set.rangeSet.range.{u, u_1} {α : Type u} {ι : Sort u_1} (f : ι → α) : Set αRange of a function. This function is more flexible than `f '' univ`, as the image requires that the domain is in Type and not an arbitrary Sort.⇑QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X))) (Nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) : ∑ p𝔓 X∈ (Antichain.𝔄_auxAntichain.𝔄_aux.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔄 : Set (𝔓 X)) (ϑ : Θ X) (N : ℕ) : Set (𝔓 X)Def 6.3.15.𝔄Set (𝔓 X)(↑ϑ↑(Set.range ⇑Q)) Nℕ).toFinsetSet.toFinset.{u_1} {α : Type u_1} (s : Set α) [Fintype ↑s] : Finset αConstruct a finset enumerating a set `s`, given a `Fintype` instance., MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.GSet X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(Antichain.C6_3_4Antichain.C6_3_4 (a N : ℕ) : NNRealThe constant appearing in Lemma 6.3.4.aℕNℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.𝔄Set (𝔓 X)*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(⋃ p𝔓 X∈ 𝔄Set (𝔓 X), ↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X))Lemma 6.3.4.
Proof. Fix \mfa and N. Let \mathfrak{A}' be the set of
\fp\in\mathfrak{A}_{\mfa,N} such that \scI(\fp)\cap G is not empty and
s(\fp) > -S. Let \mathfrak{A}_{-S} be the set of
\fp\in\mathfrak{A}_{\mfa,N} such that \scI(\fp)\cap G is not empty and
s(\fp) = -S. Then we have
\sum_{\fp\in\mathfrak{A}_{\mfa,N}}\mu(E(\fp)\cap G) =
\sum_{\fp\in\mathfrak{A}'}\mu(E(\fp)\cap G) + \sum_{\fp\in\mathfrak{A}_{-S}}\mu(E(\fp)\cap G).
We start by estimating the contribution of \mathfrak{A}_{-S}. Let
\mathcal{L}_{-S} be the collection of dyadic cubes \scI(\fp) with
\fp \in \mathfrak{A}_{-S}. They all have scale -S, by definition of
\mathcal{L}_{-S}, and hence they are pairwise disjoint by the dyadic
property dyadicproperty. We write
\sum_{\fp\in\mathfrak{A}_{-S}}\mu(E(\fp)\cap G)
= \sum_{L \in \mathcal{L}_{-S}} \sum_{\fp\in\mathfrak{A}_{-S}, \scI(\fp) = L} \mu(E(\fp)\cap G),
and using Lemma 1.79, we estimate
\le 2^{a(N+5)} \dens_1(\mathfrak{A}) \sum_{L \in \mathcal{L}_{-S}} \mu(L)
\le 2^{a(N+5)} \dens_1(\mathfrak{A}) \mu\left(\cup_{\fp\in\mathfrak{A}}I_{\fp}\right).
We turn to \mathfrak{A}'. Let \mathcal{L} be the collection of dyadic
cubes I\in\mathcal{D} such that I \le \scI(\fp) for some
\fp\in\mathfrak{A}' and such that \scI(\fp)\not \subset I for all
\fp\in\mathfrak{A}'. By coverdyadic, for each \fp \in \mathfrak{A}'
and each x\in \scI(\fp)\cap G, there is I\in \mathcal{D} with
s(I)=-S and x\in I. By dyadicproperty, we have
I\subset \scI(\fp). Since for all \fp' \in \mathfrak{A}' we have
s(\fp') > -S, we have I \in \mathcal{L}. Hence
\scI(\fp)\subset \bigcup\{I\in \mathcal{D}: s(I)=-S, I\subset \scI(\fp)\}\subset \bigcup \mathcal{L}.
As each I\in \mathcal{L} satisfies I\subset \scI(\fp) for some
\fp in \mathfrak{A'}, we conclude
\bigcup\mathcal{L}=\bigcup_{\fp \in \mathfrak{A}'}\scI(\fp).
Let \mathcal{L}^* be the set of maximal elements in \mathcal{L} with
respect to set inclusion. By dyadicproperty, the elements in
\mathcal{L}^* are pairwise disjoint and we have
\bigcup\mathcal{L}^*=\bigcup_{\fp \in \mathfrak{A}'}\scI(\fp).
Using the partition eqdecAprime into elements of \mathcal{L} in
eqanti0, it suffices to show for each L\in \mathcal{L}^*
\sum_{\fp\in\mathfrak{A}'}\mu(E(\fp)\cap G \cap L)
\le
2^{101a^3+aN}
\dens_1(\mathfrak{A})\mu(L).
Fix L\in \mathcal{L}^*. By definition of \mathcal{L}^*, there exists an
element \fp'\in \mathfrak{A}' such that L\subset \scI(\fp'). Pick such
an element \fp' in \mathfrak{A} with minimal \ps(\fp'). As
\scI(\fp')\not \subset L by definition of L, we have with
dyadicproperty that s(L)< \ps(\fp'). In particular s(L)<S, thus
L \ne I_0 and hence by subsetmaxcube there exists a cube
J \in \mathcal{D} with L \subsetneq J. By coverdyadic, there is an
L'\in \mathcal{D} with s(L')=s(L)+1 and L \le L'. By
dyadicproperty, we have L\subset L'.
We split the left-hand side of eqanti0 as
\sum_{\fp\in\mathfrak{A}':\scI(\fp)=L'}\mu(E(\fp)\cap G\cap L)
+
\sum_{\fp\in\mathfrak{A}':\scI(\fp)\neq L'}\mu(E(\fp)\cap G\cap L).
We first estimate eqanti1 with Lemma 1.79 by
\le \sum_{\fp\in\mathfrak{A}':\scI(\fp)=L'}\mu(E(\fp)\cap G\cap L')\le 2^{a(N+5)}\dens_1(\mathfrak{A})\mu(L').
We turn to eqanti2. Consider the element \fp'\in \mathfrak{A}' as above
with L\subset \scI(\fp') and s(L)<\ps(\fp'). As L\subset L' and
s(L')=s(L)+1, we conclude with the dyadic property that
L'\subset \scI(\fp'). By maximality of L, we have
L'\not\in \mathcal{L}. This together with the existence of the given
\fp'\in \mathfrak{A} with L'\subset \scI(\fp') shows by definition of
\mathcal{L} that there exists \fp''\in \mathfrak{A}' with
\scI(\fp'')\subset L'.
If \scI(\fp'') = L', then we set \fp_{\mfa} = \fp'' and note that as
\fp'' \in \mathfrak{A}_{\mfa,N}
\mfa \in B(\fcc(\fp''), 2^{N+1}).
If \scI(\fp'') \ne L', then it follows that s(\fp'') < s(L'). By the
covering property eq-dis-freq-cover, there exists a unique \fp_{\mfa}
with
\scI(\fp_{\mfa})=L'
such that \mfa\in \fc(\fp_{\mfa}). We take this as the definition of
\fp_\mfa in this case. Note that
\mfa\in B(\fcc(\fp_{\mfa}), 1)
so by Lemma 1.78, we conclude
2^{N+3}\fp'' \lesssim 2^{N+3}\fp_{\mfa}.
This clearly also holds in the case \scI(\fp'') = L', since then
\fp'' = \fp_\mfa. Furthermore, in both cases it also holds that
\mfa\in B_{\fp_{\mfa}}(\fcc(\fp_{\mfa}), 2^{N+1}).
As \fp''\in \mathfrak{A}', we have by definition definedens1 of
\dens_1 that
\mu(E_2(2^{N+3}, \fp_{\mfa}))\le 2^{Na+3a}\dens_1(\mathfrak{A}) {\mu(L')}.
Now let \fp be any tile in the summation set in eqanti2, that is,
\fp\in \mathfrak{A}' and \scI(\fp)\neq L'. Then
\scI(\fp)\cap L\neq \emptyset. It follows by the dyadic property
dyadicproperty and the definition of L that L\subset \scI(\fp) and
L\neq \scI(\fp). By dyadicproperty, we have s(L)<\ps(\fp) and thus
s(L')\le \ps(\fp). By dyadicproperty again, we have
L'\subset \scI(\fp). As L'\neq \scI(\fp), we conclude
s(L)<\ps(\fp). By Lemma 1.80, we can thus estimate
eqanti2 by
\sum_{\fp\in\mathfrak{A}':\scI(\fp)\neq L'}\mu(E(\fp)\cap G\cap L')
\le \mu (E_2(2^{N+3},\fp_{\mfa})).
With the decomposition in eqanti1 and eqanti2 and the estimates
equanti1.5, eqanti-0.5, pmfadens we obtain the estimate
\sum_{\fp\in\mathfrak{A}'}\mu(E(\fp)\cap G \cap L)
\le (2^{a(N+5)}+2^{Na+3a})\dens_1(\mathfrak{A})\mu(L').
Using s(L')=s(L)+1 and D=2^{100a^2} and the squeezing property
eq-vol-sp-cube and the doubling property doublingx 100a^2+4 times, we
obtain
\mu(L')\le 2^{100a^3+4a}\mu(L).
Inserting in eqanti3.14, adding the estimate eq_minus_S and using
a\ge 4 gives eqanti0. This completes the proof of the lemma.
We turn to the proof of Lemma 1.74.
Proof of Lemma 1.74. Using that \mathfrak{A} is the disjoint
union of the \mathfrak{A}_{\mfa,N} with N\ge 0, we estimate the left-hand
side eq-antichain-Lp with the triangle inequality by
\le \sum_{N\ge 0} \left\|\sum_{\fp\in \mathfrak{A}_{\mfa,N}} 2^{-N/(2a^2+a^3)}\mathbf{1}_{E(\fp)} \mathbf{1}_G\right\|_{p}.
We consider each individual term in this sum and estimate its p-th power.
Using that for each x\in X by Lemma 1.69 there is at most one
\fp\in \mathfrak{A} with x\in E(\fp), we have
\left\|\sum_{\fp\in \mathfrak{A}_{\mfa,N}} 2^{-N/(2a^2+a^3)}\mathbf{1}_{E(\fp)} \mathbf{1}_G\right\|_{p}^p
=\int\Big(\sum_{\fp\in \mathfrak{A}_{\mfa,N}}2^{-N/(2a^2+a^3)}\mathbf{1}_{E(\fp)\cap G}(x)\Big)^p\, d\mu(x)
=\int\sum_{\fp\in\mathfrak{A}_{\mfa,N}}2^{-pN/(2a^2+a^3)}\mathbf{1}_{E(\fp)\cap G}(x)\, d\mu(x)
= 2^{-pN/(2a^2+a^3)} \sum_{\fp\in\mathfrak{A}_{\mfa,N}}\mu(E(\fp)\cap G).
Using Lemma 1.81, we estimate the last display by
\le 2^{-pN/(2a^2+a^3)+101a^3+Na}\dens_1(\mathfrak{A})\mu\left(\cup_{\fp\in\mathfrak{A}}\scI(\fp)\right).
Using that a\ge 4 and since p = 4a^4, we have
pN/(2a^2+a^3)\ge 4a^4N/(3a^3) \ge Na+N.
Hence we have for eqanti21 the upper bound
\le 2^{101a^3-N}\dens_1(\mathfrak{A})\mu\left(\cup_{\fp\in\mathfrak{A}}\scI(\fp)\right).
Taking the p-th root and summing over N\ge 0 gives for eqanti23 the
upper bound
\le \left(\sum_{N\ge 0} 2^{-N/p}\right)2^{101a^3/p}\dens_1(\mathfrak{A})^{{\frac{1}{p}}}\mu\left(\cup_{\fp\in\mathfrak{A}}\scI(\fp)\right)^{{\frac{1}{p}}}
= \left(1-2^{-1/p}\right)^{-1} 2^{101a^3/p} \dens_1(\mathfrak{A})^{\frac 1p}\mu\left(\cup_{\fp\in\mathfrak{A}}\scI(\fp)\right)^{\frac 1p}.
Using that p = 4a^4 and a \ge 4, this proves the lemma.
1.5.10. Proof of the Forest Operator Proposition
1.5.11. The pointwise tree estimate
Fix a forest (\fU, \fT). The main result of this subsection is
Lemma 1.84, we begin this section with some definitions
necessary to state the lemma.
For \fu \in \fU and x\in X, we define
\sigma (\fu, x):=\{\ps(\fp):\fp\in \fT(\fu), x\in E(\fp)\}.
This is a subset of \mathbb{Z} \cap [-S, S], so has a minimum and a
maximum. We set
\overline{\sigma} (\fu, x) := \max \sigma(\fT(\fu), x)
\underline{\sigma} (\fu, x) := \min\sigma(\fT(\fu), x).
-
TileStructure.Forest.convex_scales[complete]
For each \fu \in \fU, we have
\sigma(\fu, x) = \mathbb{Z} \cap [\underline{\sigma} (\fu, x), \overline{\sigma} (\fu, x)].
Lean code for Lemma1.82●1 theorem
Associated Lean declarations
-
TileStructure.Forest.convex_scales[complete]
-
TileStructure.Forest.convex_scales[complete]
-
theoremdefined in Carleson/ForestOperator/PointwiseEstimate.leancomplete
theorem TileStructure.Forest.convex_scales.{u_1}
TileStructure.Forest.convex_scales.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {x : X} (hu : u ∈ t) : (↑(t.σ u x)).OrdConnectedLemma 7.1.1, freely translated.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xX: XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : (↑(tTileStructure.Forest X n.σTileStructure.Forest.σ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (x : X) : Finset ℤThe definition `σ(u, x)` given in Section 7.1. We may assume `u ∈ t` whenever proving things about this definition.u𝔓 XxX)).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.theorem TileStructure.Forest.convex_scales.{u_1}
TileStructure.Forest.convex_scales.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {x : X} (hu : u ∈ t) : (↑(t.σ u x)).OrdConnectedLemma 7.1.1, freely translated.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xX: XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : (↑(tTileStructure.Forest X n.σTileStructure.Forest.σ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (x : X) : Finset ℤThe definition `σ(u, x)` given in Section 7.1. We may assume `u ∈ t` whenever proving things about this definition.u𝔓 XxX)).OrdConnectedSet.OrdConnected.{u_1} {α : Type u_1} [Preorder α] (s : Set α) : PropWe say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a `LinearOrderedField`, then this condition is also equivalent to `Convex α s`.Lemma 7.1.1, freely translated.
Proof. Let s \in \mathbb{Z} with
\underline{\sigma} (\fu, x) \le s \le \overline{\sigma} (\fu, x). By
definition of \sigma, there exists \fp \in \fT(\fu) with
\ps(\fp) = \underline{\sigma} (\fu, x) and x \in E(\fp), and there
exists \fp'' \in \fT(\fu) with
\ps(\fp'') = \overline{\sigma} (\fu, x) and
x \in E(\fp'') \subset \scI(\fp''). By property coverdyadic of the dyadic
grid, there exists a cube I \in \mathcal{D} of scale s with x \in I.
By property eq-dis-freq-cover, there exists a tile \fp' \in \fP(I) with
\tQ(x) \in \fc(\fp'). By the dyadic property dyadicproperty we have
\scI(\fp) \subset \scI(\fp') \subset \scI(\fp''), and by
eq-freq-dyadic, we have \fc(\fp'') \subset \fc(\fp') \subset \fc(\fp).
Thus \fp \le \fp' \le\fp'', which gives with the convexity property
forest2 of \fT(\fu) that \fp' \in \fT(\fu), so
s \in \sigma(\fu, x).
For a nonempty collection of tiles \mathfrak{S} \subset \fP we define
\mathcal{J}_0(\mathfrak{S})
to be the collection of all dyadic cubes J \in \mathcal{D} such that
s(J) = -S or
\scI(\fp) \not\subset B(c(J), 100D^{s(J) + 1})
for all \fp \in \mathfrak{S}. We define \mathcal{J}(\mathfrak{S}) to
be the collection of inclusion maximal cubes in
\mathcal{J}_0(\mathfrak{S}).
We further define
\mathcal{L}_0(\mathfrak{S})
to be the collection of dyadic cubes L \in \mathcal{D} such that
s(L) = -S, or there exists \fp \in \mathfrak{S} with
L \subset \scI(\fp) and there exists no \fp \in \mathfrak{S} with
\scI(\fp) \subset L. We define \mathcal{L}(\mathfrak{S}) to be the
collection of inclusion maximal cubes in \mathcal{L}_0(\mathfrak{S}).
-
TileStructure.Forest.biUnion_𝓙[complete] -
TileStructure.Forest.pairwiseDisjoint_𝓙[complete] -
TileStructure.Forest.biUnion_𝓛[complete] -
TileStructure.Forest.pairwiseDisjoint_𝓛[complete]
For each \mathfrak{S} \subset \fP, we have
\bigcup_{I \in \mathcal{D}} I = \dot{\bigcup_{J \in \mathcal{J}(\mathfrak{S})}} J
and
\bigcup_{I \in \mathcal{D}} I = \dot{\bigcup_{L \in \mathcal{L}(\mathfrak{S})}} L.
Lean code for Lemma1.83●4 theorems
Associated Lean declarations
-
TileStructure.Forest.biUnion_𝓙[complete]
-
TileStructure.Forest.pairwiseDisjoint_𝓙[complete]
-
TileStructure.Forest.biUnion_𝓛[complete]
-
TileStructure.Forest.pairwiseDisjoint_𝓛[complete]
-
TileStructure.Forest.biUnion_𝓙[complete] -
TileStructure.Forest.pairwiseDisjoint_𝓙[complete] -
TileStructure.Forest.biUnion_𝓛[complete] -
TileStructure.Forest.pairwiseDisjoint_𝓛[complete]
-
theoremdefined in Carleson/ForestOperator/PointwiseEstimate.leancomplete
theorem TileStructure.Forest.biUnion_𝓙.{u_1}
TileStructure.Forest.biUnion_𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔖 : Set (𝔓 X)} : ⋃ J ∈ TileStructure.Forest.𝓙 𝔖, ↑J = ⋃ I, ↑IPart of Lemma 7.1.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔖Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} : ⋃ JGrid X∈ TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2𝔖Set (𝔓 X), ↑JGrid X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.⋃ IGrid X, ↑IGrid Xtheorem TileStructure.Forest.biUnion_𝓙.{u_1}
TileStructure.Forest.biUnion_𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔖 : Set (𝔓 X)} : ⋃ J ∈ TileStructure.Forest.𝓙 𝔖, ↑J = ⋃ I, ↑IPart of Lemma 7.1.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔖Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} : ⋃ JGrid X∈ TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2𝔖Set (𝔓 X), ↑JGrid X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.⋃ IGrid X, ↑IGrid XPart of Lemma 7.1.2
-
theoremdefined in Carleson/ForestOperator/PointwiseEstimate.leancomplete
theorem TileStructure.Forest.pairwiseDisjoint_𝓙.{u_1}
TileStructure.Forest.pairwiseDisjoint_𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔖 : Set (𝔓 X)} : (TileStructure.Forest.𝓙 𝔖).PairwiseDisjoint fun I ↦ ↑I{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔖Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} : (TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2𝔖Set (𝔓 X)).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.fun IGrid X↦ ↑IGrid Xtheorem TileStructure.Forest.pairwiseDisjoint_𝓙.{u_1}
TileStructure.Forest.pairwiseDisjoint_𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔖 : Set (𝔓 X)} : (TileStructure.Forest.𝓙 𝔖).PairwiseDisjoint fun I ↦ ↑I{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔖Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} : (TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2𝔖Set (𝔓 X)).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.fun IGrid X↦ ↑IGrid X -
theoremdefined in Carleson/ForestOperator/PointwiseEstimate.leancomplete
theorem TileStructure.Forest.biUnion_𝓛.{u_1}
TileStructure.Forest.biUnion_𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔖 : Set (𝔓 X)} : ⋃ J ∈ TileStructure.Forest.𝓛 𝔖, ↑J = ⋃ I, ↑IPart of Lemma 7.1.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔖Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} : ⋃ JGrid X∈ TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2𝔖Set (𝔓 X), ↑JGrid X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.⋃ IGrid X, ↑IGrid Xtheorem TileStructure.Forest.biUnion_𝓛.{u_1}
TileStructure.Forest.biUnion_𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔖 : Set (𝔓 X)} : ⋃ J ∈ TileStructure.Forest.𝓛 𝔖, ↑J = ⋃ I, ↑IPart of Lemma 7.1.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔖Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} : ⋃ JGrid X∈ TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2𝔖Set (𝔓 X), ↑JGrid X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.⋃ IGrid X, ↑IGrid XPart of Lemma 7.1.2
-
theoremdefined in Carleson/ForestOperator/PointwiseEstimate.leancomplete
theorem TileStructure.Forest.pairwiseDisjoint_𝓛.{u_1}
TileStructure.Forest.pairwiseDisjoint_𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔖 : Set (𝔓 X)} : (TileStructure.Forest.𝓛 𝔖).PairwiseDisjoint fun I ↦ ↑IPart of Lemma 7.1.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔖Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} : (TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2𝔖Set (𝔓 X)).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.fun IGrid X↦ ↑IGrid Xtheorem TileStructure.Forest.pairwiseDisjoint_𝓛.{u_1}
TileStructure.Forest.pairwiseDisjoint_𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {𝔖 : Set (𝔓 X)} : (TileStructure.Forest.𝓛 𝔖).PairwiseDisjoint fun I ↦ ↑IPart of Lemma 7.1.2{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {𝔖Set (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)} : (TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2𝔖Set (𝔓 X)).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.fun IGrid X↦ ↑IGrid XPart of Lemma 7.1.2
Proof. Since \mathcal{J}(\mathfrak{S}) is the set of inclusion maximal cubes
in \mathcal{J}_0(\mathfrak{S}), cubes in \mathcal{J}(\mathfrak{S}) are
pairwise disjoint by dyadicproperty. The same applies to
\mathcal{L}(\mathfrak{S}).
If x \in \bigcup_{I \in \mathcal{D}} I, then there exists by
coverdyadic a cube I \in \mathcal{D} with x \in I and
s(I) = -S. Then I \in \mathcal{J}_0(\mathfrak{S}). There exists an
inclusion maximal cube in \mathcal{J}_0(\mathfrak{S}) containing I.
This cube contains x and is contained in \mathcal{J}(\mathfrak{S}).
This shows one inclusion in eq-J-partition, the other one follows from
\mathcal{J}(\mathfrak{S}) \subset \mathcal{D}.
The proof of the two inclusions in eq-L-partition is similar.
For a finite collection of pairwise disjoint cubes \mathcal{C}, define the
projection operator
P_{\mathcal{C}}f(x) :=\sum_{J\in\mathcal{C}}\mathbf{1}_J(x) \frac{1}{\mu(J)}\int_J f(y) \, \mathrm{d}\mu(y).
Given a scale -S \le s\le S and a point
x \in \bigcup_{I\in \mathcal{D}, s(I) = s} I, there exists a unique cube
in \mathcal{D} of scale s containing x by coverdyadic. We denote it
by I_s(x). Define for \mfa \in \Mf the nontangential maximal operator
T_{\mathcal{N}}^\mfa f(x) := \sup_{-S \le s_1 < S} \sup_{x' \in I_{s_1}(x)} \sup_{\substack{s_1 \le s_2 \le S\\ D^{s_2-1} \le R_Q(\mfa, x')}} \left| \sum_{s = s_1}^{s_2} \int K_s(x',y) f(y) \, \mathrm{d}\mu(y) \right|.
Define for each \fu \in \fU the auxiliary operator
S_{1,\fu}f(x)
:=\sum_{I\in\mathcal{D}} \mathbf{1}_{I}(x) \sum_{\substack{J\in \mathcal{J}(\fT(\fu))\\
J\subset B(c(I), 16 D^{s(I)})\\ s(J) \le s(I)}} \frac{D^{(s(J) - s(I))/a}}{\mu(B(c(I), 16D^{s(I)}))}\int_J |f(y)| \, \mathrm{d}\mu(y).
Define also the collection of balls
\mathcal{B} = \{B(c(I), 2^s D^{s(I)+t}) \ : \ I \in \mathcal{D}\,, 0 \le s \le S + 5\,, 0 \le t \le 2S+3\}.
The following pointwise estimate for operators associated to sets \fT(\fu)
is the main result of this subsection.
Uses Lemma 1.85, Lemma 1.86, and Lemma 1.87.
Let \fu \in \fU and L \in \mathcal{L}(\fT(\fu)). Let x, x' \in L.
Then for all bounded functions f with bounded support
\left|\sum_{\fp \in \fT(\fu)} T_{\fp}[ e(-\fcc(\fu))f](x)\right|
\leq 2^{129a^3}(M_{\mathcal{B},1}+S_{1,\fu})P_{\mathcal{J}(\fT(\fu))}|f|(x')+|T_{\mathcal{N}}^{\fcc(\fu)} P_{\mathcal{J}(\fT(\fu))}f(x')|.
Lean code for Lemma1.84●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/PointwiseEstimate.leancomplete
theorem TileStructure.Forest.pointwise_tree_estimate.{u_1}
TileStructure.Forest.pointwise_tree_estimate.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {x x' : X} {f : X → ℂ} {L : Grid X} (hu : u ∈ t) (hL : L ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) (hx : x ∈ L) (hx' : x' ∈ L) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ‖carlesonSum ((fun x ↦ t.𝔗 x) u) (fun y ↦ Complex.exp (Complex.I * -↑((𝒬 u) y)) * f y) x‖ₑ ≤ ↑(TileStructure.Forest.C7_1_3 a) * (MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ‖f x‖) x' + t.boundaryOperator u (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ↑‖f x‖) x') + TileStructure.Forest.nontangentialMaximalFunction (𝒬 u) (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) f) x'Lemma 7.1.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hLL ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u): LGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) (hxx ∈ L: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hx'x' ∈ L: x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) (fun yX↦ Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.-Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) yX))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.fX → ℂyX) xX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_1_3TileStructure.Forest.C7_1_3 (a : ℕ) : NNRealThe constant used in `pointwise_tree_estimate`. Has value `2 ^ (129 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) x'X+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.tTileStructure.Forest X n.boundaryOperatorTileStructure.Forest.boundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{1,𝔲} f(x)`, given in (7.1.4).u𝔓 X(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ↑‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) x'X)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.TileStructure.Forest.nontangentialMaximalFunctionTileStructure.Forest.nontangentialMaximalFunction.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (θ : Θ X) (f : X → ℂ) (x : X) : ENNRealThe definition `T_𝓝^θ f(x)`, given in (7.1.3). For convenience, the suprema are written a bit differently than in the blueprint (avoiding `cubeOf`), but this should be equivalent. This is `0` if `x` doesn't lie in a cube.(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) (TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fX → ℂ) x'Xtheorem TileStructure.Forest.pointwise_tree_estimate.{u_1}
TileStructure.Forest.pointwise_tree_estimate.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {x x' : X} {f : X → ℂ} {L : Grid X} (hu : u ∈ t) (hL : L ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) (hx : x ∈ L) (hx' : x' ∈ L) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ‖carlesonSum ((fun x ↦ t.𝔗 x) u) (fun y ↦ Complex.exp (Complex.I * -↑((𝒬 u) y)) * f y) x‖ₑ ≤ ↑(TileStructure.Forest.C7_1_3 a) * (MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ‖f x‖) x' + t.boundaryOperator u (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ↑‖f x‖) x') + TileStructure.Forest.nontangentialMaximalFunction (𝒬 u) (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) f) x'Lemma 7.1.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hLL ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u): LGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) (hxx ∈ L: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hx'x' ∈ L: x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) (fun yX↦ Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.-Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) yX))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.fX → ℂyX) xX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_1_3TileStructure.Forest.C7_1_3 (a : ℕ) : NNRealThe constant used in `pointwise_tree_estimate`. Has value `2 ^ (129 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) x'X+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.tTileStructure.Forest X n.boundaryOperatorTileStructure.Forest.boundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{1,𝔲} f(x)`, given in (7.1.4).u𝔓 X(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ↑‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) x'X)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.TileStructure.Forest.nontangentialMaximalFunctionTileStructure.Forest.nontangentialMaximalFunction.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (θ : Θ X) (f : X → ℂ) (x : X) : ENNRealThe definition `T_𝓝^θ f(x)`, given in (7.1.3). For convenience, the suprema are written a bit differently than in the blueprint (avoiding `cubeOf`), but this should be equivalent. This is `0` if `x` doesn't lie in a cube.(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) (TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fX → ℂ) x'XLemma 7.1.3.
Proof. By definetp, if T_{\fp}[ e(-\fcc(\fu))f](x) \ne 0, then
x \in E(\fp). Combining this with |e(\fcc(\fu)(x))| = 1, we obtain
|\sum_{\fp \in \fT(\fu)} T_{\fp}[ e(-\fcc(\fu))f](x)|
= \Bigg| \sum_{s \in \sigma(\fu, x)} \int e(-\fcc(\fu)(y) + \tQ(x)(y) + \fcc(\fu)(x) -\tQ(x)(x))\times
K_s(x,y)f(y) \, \mathrm{d}\mu(y) \Bigg|.
Using the triangle inequality, we bound this by the sum of three terms:
\le \Bigg| \sum_{s \in \sigma(\fu, x)} \int (e(-\fcc(\fu)(y) + \tQ(x)(y) + \fcc(\fu)(x) -\tQ(x)(x))-1)\times
K_s(x,y)f(y) \, \mathrm{d}\mu(y) \Bigg|
+ \Bigg| \sum_{s \in \sigma(\fu, x)} \int K_s(x,y) P_{\mathcal{J}(\fT(\fu))} f(y) \, \mathrm{d}\mu(y) \Bigg|
+ \Bigg| \sum_{s \in \sigma(\fu, x)} \int K_s(x,y) (f(y) - P_{\mathcal{J}(\fT(\fu))} f(y)) \, \mathrm{d}\mu(y) \Bigg|.
The proof is completed using the bounds for these three terms proven
respectively in Lemma 1.85, Lemma 1.86 and
Lemma 1.87.
Uses Lemma 1.82 and Lemma 1.12.
For all \fu \in \fU, all L \in \mathcal{L}(\fT(\fu)), all
x, x' \in L and all bounded f with bounded support, we have
the estimate eq-term-A:
10 \cdot 2^{104a^3} M_{\mathcal{B}, 1}P_{\mathcal{J}(\fT(\fu))}|f|(x').
Lean code for Lemma1.85●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/PointwiseEstimate.leancomplete
theorem TileStructure.Forest.first_tree_pointwise.{u_1}
TileStructure.Forest.first_tree_pointwise.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {x x' : X} {f : X → ℂ} {L : Grid X} (hu : u ∈ t) (hL : L ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) (hx : x ∈ L) (hx' : x' ∈ L) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ‖∑ i ∈ t.σ u x, ∫ (y : X), (Complex.exp (Complex.I * (-↑((𝒬 u) y) + ↑((Q x) y) + ↑((𝒬 u) x) - ↑((Q x) x))) - 1) * Ks i x y * f y‖ₑ ≤ ↑(TileStructure.Forest.C7_1_4 a) * MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ‖f x‖) x'Lemma 7.1.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hLL ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u): LGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) (hxx ∈ L: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hx'x' ∈ L: x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∑ iℤ∈ tTileStructure.Forest X n.σTileStructure.Forest.σ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (x : X) : Finset ℤThe definition `σ(u, x)` given in Section 7.1. We may assume `u ∈ t` whenever proving things about this definition.u𝔓 XxX, ∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(yX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).-Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) yX) +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑((QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)xX) yX) +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) xX) -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑((QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)xX) xX))HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).1)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.KsKs.{u_1} {X : Type u_1} {a : ℕ} {K : X → X → ℂ} [PseudoMetricSpace X] [KernelProofData a K] (s : ℤ) (x y : X) : ℂK_s in the blueprintiℤxXyX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.fX → ℂyX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_1_4TileStructure.Forest.C7_1_4 (a : ℕ) : NNRealThe constant used in `first_tree_pointwise`. Has value `10 * 2 ^ (104 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) x'Xtheorem TileStructure.Forest.first_tree_pointwise.{u_1}
TileStructure.Forest.first_tree_pointwise.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {x x' : X} {f : X → ℂ} {L : Grid X} (hu : u ∈ t) (hL : L ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) (hx : x ∈ L) (hx' : x' ∈ L) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ‖∑ i ∈ t.σ u x, ∫ (y : X), (Complex.exp (Complex.I * (-↑((𝒬 u) y) + ↑((Q x) y) + ↑((𝒬 u) x) - ↑((Q x) x))) - 1) * Ks i x y * f y‖ₑ ≤ ↑(TileStructure.Forest.C7_1_4 a) * MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ‖f x‖) x'Lemma 7.1.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hLL ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u): LGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) (hxx ∈ L: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hx'x' ∈ L: x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∑ iℤ∈ tTileStructure.Forest X n.σTileStructure.Forest.σ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (x : X) : Finset ℤThe definition `σ(u, x)` given in Section 7.1. We may assume `u ∈ t` whenever proving things about this definition.u𝔓 XxX, ∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(yX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).-Neg.neg.{u} {α : Type u} [self : Neg α] : α → α`-a` computes the negative or opposite of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `neg` (when used as a unary operator).↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) yX) +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑((QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)xX) yX) +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) xX) -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑((QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)xX) xX))HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).1)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.KsKs.{u_1} {X : Type u_1} {a : ℕ} {K : X → X → ℂ} [PseudoMetricSpace X] [KernelProofData a K] (s : ℤ) (x y : X) : ℂK_s in the blueprintiℤxXyX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.fX → ℂyX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_1_4TileStructure.Forest.C7_1_4 (a : ℕ) : NNRealThe constant used in `first_tree_pointwise`. Has value `10 * 2 ^ (104 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) x'XLemma 7.1.4
Proof. Let s \in \sigma(\fu,x). If x, y \in X are such that
K_s(x,y)\neq 0, then, by supp-Ks, we have
\rho(x,y)\leq 1/2 D^s. By 1-Lipschitz continuity of the function
t \mapsto \exp(it) = e(t) and the property osccontrol of the metrics
d_B, it follows that
|e(-\fcc(\fu)(y)+\tQ(x)(y)+\fcc(\fu)(x)-\tQ(x)(x))-1|
\leq d_{B(x, 1/2 D^{s})}(\fcc(\fu), \tQ(x)).
Let \fp_s \in \fT(\fu) be a tile with \ps(\fp_s) = s and
x \in E(\fp_s), and let \fp' be a tile with
\ps(\fp') = \overline{\sigma}(\fu, x) and x \in E(\fp'). Using the
monotonicity property monotonedb, the doubling property firstdb
repeatedly, the definition of d_{\fp} and Lemma 1.11, we can
bound the previous display by
d_{B(x, 4 D^{s})}(\fcc(\fu), \tQ(x)) \leq 2^{4a} d_{\fp_s}(\fcc(\fu), \tQ(x)) \le 2^{4a} 2^{s - \overline{\sigma}(\fu, x)} d_{\fp'}(\fcc(\fu), \tQ(x)).
Since \fcc(\fu) \in B_{\fp'}(\fcc(\fp'), 4) by forest1 and
\tQ(x) \in \Omega(\fp') \subset B_{\fp'}(\fcc(\fp'), 1) by
eq-freq-comp-ball, this is estimated by
\le 5 \cdot 2^{4a} 2^{s - \overline{\sigma}(\fu, x)}.
Using eq-Ks-size, it follows that eq-term-A is bounded by
5\cdot 2^{103a^3} \sum_{s\in\sigma(x)}2^{s - \overline{\sigma}(\fu, x)} \frac{1}{\mu(B(x,D^s))}\int_{B(x,0.5D^{s})}|f(y)|\,\mathrm{d}\mu(y).
By eq-J-partition, the collection \mathcal{J} is a partition of
\bigcup_{I \in \mathcal{D}} I, so this is estimated by
5\cdot 2^{103a^3} \sum_{s\in\sigma(x)}2^{s - \overline{\sigma}(\fu, x)} \frac{1}{\mu(B(x,D^s))}\sum_{\substack{J \in \mathcal{J}(\fT(\fu))\\J \cap B(x, 0.5D^s) \ne \emptyset} }\int_{J}|f(y)|\,\mathrm{d}\mu(y).
This expression does not change if we replace |f| by
P_{\mathcal{J}(\fT(\fu))}|f|.
Let J \in \mathcal{J}(\fT(\fu)) with
B(x, 0.5 D^s) \cap J \ne \emptyset. By the triangle inequality and since
x \in E(\fp_s) \subset B(\pc(\fp_s), 4D^{s}), it follows that
B(\pc(\fp_s), 4.5D^s) \cap J \ne \emptyset. If s(J) \ge s and
s(J) > -S, then it follows from the triangle inequality,
eq-vol-sp-cube and defineD that
\scI(\fp_s) \subset B(c(J), 100 D^{s(J)+1}), contradicting
J \in \mathcal{J}(\mathfrak{T}(\fu)). Thus s(J) \le s - 1 or
s(J) = -S. If s(J) = -S and s(J) > s - 1, then s = -S. Thus we
always have s(J) \le s. It then follows from the triangle inequality and
eq-vol-sp-cube that J \subset B(\pc(\fp_s), 16 D^s).
Thus we can continue our chain of estimates with
5\cdot 2^{103a^3} \sum_{s\in\sigma(x)}2^{s - \overline{\sigma}(\fu, x)} \frac{1}{\mu(B(x,D^s))}\int_{B(\pc(\fp_s),16 D^s)}P_{\mathcal{J}(\fT(\fu))}|f(y)|\,\mathrm{d}\mu(y).
We have B(\pc(\fp_s), 16D^s)) \subset B(x, 32D^s), by eq-vol-sp-cube
and the triangle inequality, since x \in \scI(\fp_s). Combining this with
the doubling property doublingx, we obtain
\mu(B(\pc(\fp_s), 16D^s)) \le 2^{5a} \mu(B(x, D^s)).
Since a \ge 4, it follows that eq-term-A is bounded by
5\cdot 2^{103a^3} \sum_{s\in\sigma(x)}2^{s - \overline{\sigma}(\fu, x)} \frac{1}{\mu(B(\pc(\fp_s),16D^s))}\int_{B(\pc(\fp_s),16D^s)}P_{\mathcal{J}(\fT(\fu))}|f(y)|\,\mathrm{d}\mu(y).
Since L \in \mathcal{L}(\fT(\fu)) and x\in L \cap \scI(\fp_s), we have
s(L) \le \ps(\fp_s). It follows by dyadicproperty that
L \subset \scI(\fp_s), in particular
x' \in \scI(\fp_s) \subset B(\pc(\fp_s), 16D^s). Thus
\le 5\cdot 2^{104a^3} \sum_{s\in\sigma(x)}2^{s - \overline{\sigma}(\fu, x)} M_{\mathcal{B}, 1}P_{\mathcal{J}(\fT(\fu))}|f|(x')
\le 10\cdot 2^{104a^3} M_{\mathcal{B}, 1}P_{\mathcal{J}(\fT(\fu))}|f|(x').
This completes the estimate for term eq-term-A.
For all \fu \in \fU, all L \in \mathcal{L}(\fT(\fu)), all
x, x' \in L and all bounded f with bounded support, we have
\Bigg| \sum_{s \in \sigma(\fu, x)} \int K_s(x,y) P_{\mathcal{J}(\fT(\fu))} f(y) \, \mathrm{d}\mu(y) \Bigg| \le T_{\mathcal{N}}^{\fcc(\fu)} P_{\mathcal{J}(\fT(\fu))} f(x').
Lean code for Lemma1.86●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/PointwiseEstimate.leancomplete
theorem TileStructure.Forest.second_tree_pointwise.{u_1}
TileStructure.Forest.second_tree_pointwise.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {x x' : X} {f : X → ℂ} {L : Grid X} (hu : u ∈ t) (hL : L ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) (hx : x ∈ L) (hx' : x' ∈ L) : ‖∑ i ∈ t.σ u x, ∫ (y : X), Ks i x y * TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) f y‖ₑ ≤ TileStructure.Forest.nontangentialMaximalFunction (𝒬 u) (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) f) x'Lemma 7.1.5{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hLL ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u): LGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) (hxx ∈ L: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hx'x' ∈ L: x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∑ iℤ∈ tTileStructure.Forest X n.σTileStructure.Forest.σ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (x : X) : Finset ℤThe definition `σ(u, x)` given in Section 7.1. We may assume `u ∈ t` whenever proving things about this definition.u𝔓 XxX, ∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(yX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integralKsKs.{u_1} {X : Type u_1} {a : ℕ} {K : X → X → ℂ} [PseudoMetricSpace X] [KernelProofData a K] (s : ℤ) (x y : X) : ℂK_s in the blueprintiℤxXyX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fX → ℂyX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.TileStructure.Forest.nontangentialMaximalFunctionTileStructure.Forest.nontangentialMaximalFunction.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (θ : Θ X) (f : X → ℂ) (x : X) : ENNRealThe definition `T_𝓝^θ f(x)`, given in (7.1.3). For convenience, the suprema are written a bit differently than in the blueprint (avoiding `cubeOf`), but this should be equivalent. This is `0` if `x` doesn't lie in a cube.(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) (TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fX → ℂ) x'Xtheorem TileStructure.Forest.second_tree_pointwise.{u_1}
TileStructure.Forest.second_tree_pointwise.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {x x' : X} {f : X → ℂ} {L : Grid X} (hu : u ∈ t) (hL : L ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) (hx : x ∈ L) (hx' : x' ∈ L) : ‖∑ i ∈ t.σ u x, ∫ (y : X), Ks i x y * TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) f y‖ₑ ≤ TileStructure.Forest.nontangentialMaximalFunction (𝒬 u) (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) f) x'Lemma 7.1.5{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hLL ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u): LGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) (hxx ∈ L: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hx'x' ∈ L: x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∑ iℤ∈ tTileStructure.Forest X n.σTileStructure.Forest.σ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (x : X) : Finset ℤThe definition `σ(u, x)` given in Section 7.1. We may assume `u ∈ t` whenever proving things about this definition.u𝔓 XxX, ∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(yX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integralKsKs.{u_1} {X : Type u_1} {a : ℕ} {K : X → X → ℂ} [PseudoMetricSpace X] [KernelProofData a K] (s : ℤ) (x y : X) : ℂK_s in the blueprintiℤxXyX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fX → ℂyX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.TileStructure.Forest.nontangentialMaximalFunctionTileStructure.Forest.nontangentialMaximalFunction.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (θ : Θ X) (f : X → ℂ) (x : X) : ENNRealThe definition `T_𝓝^θ f(x)`, given in (7.1.3). For convenience, the suprema are written a bit differently than in the blueprint (avoiding `cubeOf`), but this should be equivalent. This is `0` if `x` doesn't lie in a cube.(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) (TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fX → ℂ) x'XLemma 7.1.5
Proof. Let s_1 = \underline{\sigma}(\fu, x). By definition, there exists a
tile \fp \in \fT(\fu) with \ps(\fp) = s_1 and x \in E(\fp). Then
x \in \scI(\fp) \cap L. By dyadicproperty and the definition of
\mathcal{L}(\fT(\fu)), it follows that L \subset \scI(\fp), so
x \in I_{s_1}(x').
Next, let s_2 = \overline{\sigma}(\fu, x) and let
\fp' \in \fT(\fu) with \ps(\fp') = s_2 and x \in E(\fp'). Since
\fp' \in \fT(\fu), we have 4\fp' \lesssim \fu. Since
\tQ(x) \in \fc(\fp'), it follows that
d_{\fp}(\fcc(\fu), \tQ(x)) \le 5.
Applying the doubling property firstdb five times, we obtain
d_{B(c(\fp), 8D^{s_2})}(\fcc(\fu), \tQ(x)) \le 5 \cdot 2^{5a}.
By the triangle inequality, we have
B(x, D^{s_2}) \subset B(c(\fp), 8 D^{s_2}), so by monotonedb
d_{B(x, D^{s_2})}(\fcc(\fu), \tQ(x)) \le 5 \cdot 2^{5a}.
Finally, by applying seconddb 100a times, we obtain
d_{B(x, D^{s_2-1})}(\fcc(\fu), \tQ(x)) \le 5 \cdot 2^{-95a} < 1.
Consequently, D^{s_2 - 1} < R_Q(\fcc(\fu), x). The lemma now follows from
the definition of T_{\mathcal{N}}.
For all \fu \in \fU, all L \in \mathcal{L}(\fT(\fu)), all
x, x' \in L and all bounded f with bounded support, we have
\Bigg| \sum_{s \in \sigma(\fu, x)} \int K_s(x,y) (f(y) - P_{\mathcal{J}(\fT(\fu))} f(y)) \, \mathrm{d}\mu(y) \Bigg|
\le 2^{128a^3} S_{1,\fu} P_{\mathcal{J}(\fT(\fu))}|f|(x').
Lean code for Lemma1.87●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/PointwiseEstimate.leancomplete
theorem TileStructure.Forest.third_tree_pointwise.{u_1}
TileStructure.Forest.third_tree_pointwise.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {x x' : X} {f : X → ℂ} {L : Grid X} (hu : u ∈ t) (hL : L ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) (hx : x ∈ L) (hx' : x' ∈ L) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ‖∑ i ∈ t.σ u x, ∫ (y : X), Ks i x y * (f y - TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) f y)‖ₑ ≤ ↑(TileStructure.Forest.C7_1_6 a) * t.boundaryOperator u (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ↑‖f x‖) x'Lemma 7.1.6{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hLL ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u): LGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) (hxx ∈ L: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hx'x' ∈ L: x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∑ iℤ∈ tTileStructure.Forest X n.σTileStructure.Forest.σ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (x : X) : Finset ℤThe definition `σ(u, x)` given in Section 7.1. We may assume `u ∈ t` whenever proving things about this definition.u𝔓 XxX, ∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(yX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integralKsKs.{u_1} {X : Type u_1} {a : ℕ} {K : X → X → ℂ} [PseudoMetricSpace X] [KernelProofData a K] (s : ℤ) (x y : X) : ℂK_s in the blueprintiℤxXyX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).fX → ℂyX-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fX → ℂyX)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_1_6TileStructure.Forest.C7_1_6 (a : ℕ) : NNRealThe constant used in `third_tree_pointwise`. Has value `2 ^ (128 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.tTileStructure.Forest X n.boundaryOperatorTileStructure.Forest.boundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{1,𝔲} f(x)`, given in (7.1.4).u𝔓 X(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ↑‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) x'Xtheorem TileStructure.Forest.third_tree_pointwise.{u_1}
TileStructure.Forest.third_tree_pointwise.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {x x' : X} {f : X → ℂ} {L : Grid X} (hu : u ∈ t) (hL : L ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) (hx : x ∈ L) (hx' : x' ∈ L) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ‖∑ i ∈ t.σ u x, ∫ (y : X), Ks i x y * (f y - TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) f y)‖ₑ ≤ ↑(TileStructure.Forest.C7_1_6 a) * t.boundaryOperator u (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ↑‖f x‖) x'Lemma 7.1.6{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hLL ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u): LGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) (hxx ∈ L: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hx'x' ∈ L: x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.LGrid X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∑ iℤ∈ tTileStructure.Forest X n.σTileStructure.Forest.σ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (x : X) : Finset ℤThe definition `σ(u, x)` given in Section 7.1. We may assume `u ∈ t` whenever proving things about this definition.u𝔓 XxX, ∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(yX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integralKsKs.{u_1} {X : Type u_1} {a : ℕ} {K : X → X → ℂ} [PseudoMetricSpace X] [KernelProofData a K] (s : ℤ) (x y : X) : ℂK_s in the blueprintiℤxXyX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).fX → ℂyX-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fX → ℂyX)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_1_6TileStructure.Forest.C7_1_6 (a : ℕ) : NNRealThe constant used in `third_tree_pointwise`. Has value `2 ^ (128 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.tTileStructure.Forest X n.boundaryOperatorTileStructure.Forest.boundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{1,𝔲} f(x)`, given in (7.1.4).u𝔓 X(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ↑‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) x'XLemma 7.1.6
Proof. We have for J \in \mathcal{J}(\fT(\fu))
\int_J K_{s}(x,y)(1 - P_{\mathcal{J}(\fT(\fu))})f(y) \, \mathrm{d}\mu(y)
= \int_J \frac{1}{\mu(J)} \int_J K_s(x,y) - K_s(x,z) \, \mathrm{d}\mu(z) \,f(y) \, \mathrm{d}\mu(y).
By eq-Ks-smooth and eq-vol-sp-cube, we have for y, z \in J
|K_s(x,y) - K_s(x,z)| \le \frac{2^{127a^3}}{\mu(B(x, D^s))} \left(\frac{8 D^{s(J)}}{D^s}\right)^{1/a}.
Suppose that s \in \sigma(\fu, x). If K_s(x,y) \ne 0 for some
y \in J \in \mathcal{J}(\fT(\fu)) then, by supp-Ks,
y \in B(x, 0.5 D^s) \cap J \ne \emptyset. Let
\fp \in \fT(\fu) with \ps(\fp) = s and x \in E(\fp). Then
B(\pc(\fp_s), 4.5D^s) \cap J \ne \emptyset by the triangle inequality. If
s(J) \ge s and s(J) > -S, then it follows from the triangle inequality,
eq-vol-sp-cube and defineD that
\scI(\fp) \subset B(c(J), 100 D^{s(J)+1}), contradicting
J \in \mathcal{J}(\mathfrak{T}(\fu)). Thus s(J) \le s - 1 or
s(J) = -S. If s(J) = -S and s(J) > s - 1, then s = -S. So in
both cases, s(J) \le s. It then follows from the triangle inequality and
eq-vol-sp-cube that J \subset B(x, 16 D^s).
Thus, we can estimate eq-term-C by
2^{127a^3 + 3/a}\sum_{\fp\in \mathfrak{T}}\frac{\mathbf{1}_{E(\fp)}(x)}{\mu(B(x,D^{\ps(\fp)}))}\sum_{\substack{J\in \mathcal{J}(\fT(\fu))\\J\subset B(x, 16D^{\ps(\fp)})\\ s(J) \le \ps(\fp)}} D^{(s(J) - \ps(\fp))/a} \int_J |f|.
= 2^{127a^3 + 3/a}\sum_{I \in \mathcal{D}} \sum_{\substack{\fp\in \mathfrak{T}\\ \scI(\fp) = I}}\frac{\mathbf{1}_{E(\fp)}(x)}{\mu(B(x, D^{s(I)}))}\sum_{\substack{J\in \mathcal{J}(\fT(\fu))\\J\subset B(x, 16 D^{s(I)})\\ s(J) \le s(I)}} D^{(s(J) - s(I))/a} \int_J |f|.
By eq-dis-freq-cover and defineep, the sets E(\fp) for tiles
\fp with \scI(\fp) = I are pairwise disjoint. It follows from the
definition of \mathcal{L}(\fT(\fu)) that x \in \scI(\fp) if and only if
x' \in \scI(\fp), thus we can estimate the sum over
\mathbf{1}_{E(\fp)}(x) by \mathbf{1}_{I}(x').
If x \in E(\fp) then in particular x \in \scI(\fp), so by
eq-vol-sp-cube
B(c(I),16D^{s(I)}) \subset B(x, 32D^{s(I)}). By the doubling property
doublingx
\mu(B(c(I), 16D^{s(I)})) \le 2^{5a} \mu(B(x, D^{s(I)})).
Since a \ge 4 we can continue our estimate with
\le 2^{128a^3}\sum_{I \in \mathcal{D}} \frac{\mathbf{1}_{I}(x')}{\mu(B(c(I), 16D^{s(I)}))}\sum_{\substack{J\in \mathcal{J}(\fT(\fu))\\J\subset B(x, 16 D^{s(I)})\\ s(J) \le s(I)}} D^{(s(J) - s(I))/a} \int_J |f|
= 2^{128a^3} S_{1,\fu} P_{\mathcal{J}(\fT(\fu))}|f|(x').
This completes the proof.
1.5.12. An auxiliary L^2 tree estimate
In this subsection we prove the following estimate on L^2 for operators
associated to trees.
Uses Lemma 1.83, Lemma 1.84, Lemma 1.89, and Lemma 1.90.
Let \fu \in \fU. Then we have for all f, g bounded with bounded support
\Bigg|\int_X \sum_{\fp \in \fT(\fu)} \bar g(y) T_{\fp}f(y) \, \mathrm{d}\mu(y) \Bigg|
\le 2^{130a^3}\|P_{\mathcal{J}(\fT(\fu))}|f|\|_{2}\|P_{\mathcal{L}(\fT(\fu))}|g|\|_{2}.
Lean code for Lemma1.88●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/L2Estimate.leancomplete
theorem TileStructure.Forest.tree_projection_estimate.{u_2}
TileStructure.Forest.tree_projection_estimate.{u_2} {X : Type u_2} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {f g : X → ℂ} (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (hu : u ∈ t) : ‖∫ (x : X), (starRingEnd ℂ) (g x) * carlesonSum ((fun x ↦ t.𝔗 x) u) f x‖ₑ ≤ ↑(TileStructure.Forest.C7_2_1 a) * MeasureTheory.eLpNorm (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ‖f x‖) 2 MeasureTheory.volume * MeasureTheory.eLpNorm (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ‖g x‖) 2 MeasureTheory.volumeLemma 7.2.1.{XType u_2: Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_2→ XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_2→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_2} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_2] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_2) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_2)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_2nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_2} {fX → ℂgX → ℂ: XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_2),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (gX → ℂxX) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_2_1TileStructure.Forest.C7_2_1 (a : ℕ) : NNRealThe constant used in `tree_projection_estimate`. Has value `2 ^ (130 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.gX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.tree_projection_estimate.{u_2}
TileStructure.Forest.tree_projection_estimate.{u_2} {X : Type u_2} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {f g : X → ℂ} (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (hu : u ∈ t) : ‖∫ (x : X), (starRingEnd ℂ) (g x) * carlesonSum ((fun x ↦ t.𝔗 x) u) f x‖ₑ ≤ ↑(TileStructure.Forest.C7_2_1 a) * MeasureTheory.eLpNorm (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ‖f x‖) 2 MeasureTheory.volume * MeasureTheory.eLpNorm (TileStructure.Forest.approxOnCube (TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) fun x ↦ ‖g x‖) 2 MeasureTheory.volumeLemma 7.2.1.{XType u_2: Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_2→ XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_2→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_2} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_2] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_2) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_2)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_2nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_2} {fX → ℂgX → ℂ: XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_2),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (gX → ℂxX) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_2_1TileStructure.Forest.C7_2_1 (a : ℕ) : NNRealThe constant used in `tree_projection_estimate`. Has value `2 ^ (130 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) fun xX↦ ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.gX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Lemma 7.2.1.
Below, we deduce Lemma 1.88 from Lemma 1.84 and the following estimates for the operators in Lemma 1.84.
Uses Theorem 1.9.
For all bounded f with bounded support and all \mfa \in \Mf
\|T_{\mathcal{N}}^{\mfa} f\|_2 \le 2^{102a^3} \|f\|_2.
Lean code for Lemma1.89●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/L2Estimate.leancomplete
theorem TileStructure.Forest.nontangential_operator_bound.{u_2}
TileStructure.Forest.nontangential_operator_bound.{u_2} {X : Type u_2} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {f : X → ℂ} (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (θ : Θ X) : MeasureTheory.eLpNorm (TileStructure.Forest.nontangentialMaximalFunction θ f) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_2_2 a) * MeasureTheory.eLpNorm f 2 MeasureTheory.volumeLemma 7.2.2.{XType u_2: Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_2→ XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_2→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_2} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_2] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_2) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_2)] {fX → ℂ: XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (θΘ X: ΘFunctionDistances.Θ.{u, u_3} {𝕜 : outParam (Type u_3)} (X : Type u) {inst✝ : NormedField 𝕜} {inst✝¹ : TopologicalSpace X} [self : FunctionDistances 𝕜 X] : Type uA type of continuous functions from `X` to `𝕜`.XType u_2) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(TileStructure.Forest.nontangentialMaximalFunctionTileStructure.Forest.nontangentialMaximalFunction.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (θ : Θ X) (f : X → ℂ) (x : X) : ENNRealThe definition `T_𝓝^θ f(x)`, given in (7.1.3). For convenience, the suprema are written a bit differently than in the blueprint (avoiding `cubeOf`), but this should be equivalent. This is `0` if `x` doesn't lie in a cube.θΘ XfX → ℂ) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_2_2TileStructure.Forest.C7_2_2 (a : ℕ) : NNRealThe constant used in `nontangential_operator_bound`. Has value `2 ^ (102 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.nontangential_operator_bound.{u_2}
TileStructure.Forest.nontangential_operator_bound.{u_2} {X : Type u_2} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {f : X → ℂ} (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (θ : Θ X) : MeasureTheory.eLpNorm (TileStructure.Forest.nontangentialMaximalFunction θ f) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_2_2 a) * MeasureTheory.eLpNorm f 2 MeasureTheory.volumeLemma 7.2.2.{XType u_2: Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_2→ XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_2→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_2} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_2] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_2) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_2)] {fX → ℂ: XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (θΘ X: ΘFunctionDistances.Θ.{u, u_3} {𝕜 : outParam (Type u_3)} (X : Type u) {inst✝ : NormedField 𝕜} {inst✝¹ : TopologicalSpace X} [self : FunctionDistances 𝕜 X] : Type uA type of continuous functions from `X` to `𝕜`.XType u_2) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(TileStructure.Forest.nontangentialMaximalFunctionTileStructure.Forest.nontangentialMaximalFunction.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (θ : Θ X) (f : X → ℂ) (x : X) : ENNRealThe definition `T_𝓝^θ f(x)`, given in (7.1.3). For convenience, the suprema are written a bit differently than in the blueprint (avoiding `cubeOf`), but this should be equivalent. This is `0` if `x` doesn't lie in a cube.θΘ XfX → ℂ) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_2_2TileStructure.Forest.C7_2_2 (a : ℕ) : NNRealThe constant used in `nontangential_operator_bound`. Has value `2 ^ (102 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Lemma 7.2.2.
Uses Theorem 1.9 and Lemma 1.91.
For all \fu \in \fU and all bounded functions f with bounded support
\|S_{1,\fu}f\|_2 \le 2^{12a} \|f\|_2.
Lean code for Lemma1.90●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/L2Estimate.leancomplete
theorem TileStructure.Forest.boundary_operator_bound.{u_2}
TileStructure.Forest.boundary_operator_bound.{u_2} {X : Type u_2} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {f : X → ℂ} (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : MeasureTheory.eLpNorm (t.boundaryOperator u f) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_2_3 a) * MeasureTheory.eLpNorm f 2 MeasureTheory.volumeLemma 7.2.3.{XType u_2: Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_2→ XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_2→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_2} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_2] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_2) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_2)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_2nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_2} {fX → ℂ: XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(tTileStructure.Forest X n.boundaryOperatorTileStructure.Forest.boundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{1,𝔲} f(x)`, given in (7.1.4).u𝔓 XfX → ℂ) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_2_3TileStructure.Forest.C7_2_3 (a : ℕ) : NNRealcan be improved to `2 ^ (10 * a + 5 / 2)`aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.boundary_operator_bound.{u_2}
TileStructure.Forest.boundary_operator_bound.{u_2} {X : Type u_2} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {f : X → ℂ} (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : MeasureTheory.eLpNorm (t.boundaryOperator u f) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_2_3 a) * MeasureTheory.eLpNorm f 2 MeasureTheory.volumeLemma 7.2.3.{XType u_2: Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_2→ XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_2→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_2} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_2] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_2) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_2)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_2nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_2} {fX → ℂ: XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(tTileStructure.Forest X n.boundaryOperatorTileStructure.Forest.boundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{1,𝔲} f(x)`, given in (7.1.4).u𝔓 XfX → ℂ) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_2_3TileStructure.Forest.C7_2_3 (a : ℕ) : NNRealcan be improved to `2 ^ (10 * a + 5 / 2)`aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Lemma 7.2.3.
Proof of Lemma 1.88. Let L \in \mathcal{L}(\fT(\fu)).
Let b(x') denote the right-hand side of Lemma 1.84. Apply
this lemma to e(\fcc(\fu)) f, to obtain for all y, x' \in L
\Bigg| \sum_{\fp \in \fT(\fu)} T_{\fp} f(y) \Bigg| \le b(x').
Hence, by taking an infimum, we have for y \in L
\Bigg| \sum_{\fp \in \fT(\fu)} T_{\fp} f(y) \Bigg| \le \inf_{x' \in L} b(x').
Integrating this estimate yields
\int_L |g(y)| \Bigg| \sum_{\fp \in \fT(\fu)} T_{\fp} f(y) \Bigg| \, \mathrm{d}\mu(y)
\le \int_L |g(y)| \times \inf_{x' \in L} b(x') \, \mathrm{d}\mu(y)
= \int_L P_{\mathcal{L}(\fT(\fu))}|g|(y) \times \inf_{x' \in L} b(x') \, \mathrm{d}\mu(y)
\le \int_L P_{\mathcal{L}(\fT(\fu))}|g|(y) \times b(y) \, \mathrm{d}\mu(y).
By definetp, we have T_{\fp} f = \mathbf{1}_{\scI(\fp)} T_{\fp} f for all
\fp \in \fP, so
\Bigg| \int \bar g(y) \sum_{\fp \in \fT(\fu)} T_{\fp} f(y) \, \mathrm{d}\mu(y) \Bigg| = \Bigg| \int_{\bigcup_{\fp \in \fT(\fu)} \scI(\fp)} \bar g(y) \sum_{\fp \in \fT(\fu)} T_{\fp} f(y) \, \mathrm{d}\mu(y) \Bigg|.
Since \mathcal{L}(\fT(\fu)) partitions
\bigcup_{\fp \in \fT(\fu)} \scI(\fp) by Lemma 1.83, we get from
the triangle inequality
\le \sum_{L \in \mathcal{L}(\fT(\fu))} \int_L |g(y)| \Bigg| \sum_{\fp \in \fT(\fu)} T_{\fp} f(y) \Bigg| \, \mathrm{d}\mu(y)
which by the above computation is bounded by
\sum_{L \in \mathcal{L}(\fT(\fu))} \int_L P_{\mathcal{L}(\fT(\fu))}|g|(y) \times b(y) \, \mathrm{d}\mu(y)
= \int_X P_{\mathcal{L}(\fT(\fu))}|g|(y) \times b(y) \, \mathrm{d}\mu(y).
Applying Cauchy-Schwarz, this is bounded by
\|P_{\mathcal{L}(\fT(\fu))}|g|\|_2 \times \|b\|_2. By Minkowski's
inequality, Theorem 1.9, Lemma 1.89 and
Lemma 1.90, \|b\|_2 is at most
2^{129a^3} (2^{2a+1} + 2^{12a})\|P_{\mathcal{J}(\fT(\fu))}|f|\|_2 + 2^{103a^3} \|P_{\mathcal{J}(\fT(\fu))}[e(\fcc(\fu))f]\|_2.
By the triangle inequality we have for all x \in X that
|P_{\mathcal{J}(\fT(\fu))}[e(\fcc(\fu))f]|(x) \le P_{\mathcal{J}(\fT(\fu))}|f|(x),
thus we can further estimate the above by
(2^{129a^3} (2^{2a+1} + 2^{12a}) + 2^{103a^3}) \|P_{\mathcal{J}(\fT(\fu))}|f|\|_2.
This completes the proof since a \ge 4.
Now we prove the two auxiliary lemmas. We begin with the nontangential maximal
operator T_{\mathcal{N}}.
Proof of Lemma 1.89. Fix s_1, s_2. By eq-psisum we
have for all x \in (0, \infty)
\sum_{s = s_1}^{s_2} \psi(D^{-s}x) = 1 - \sum_{s < s_1} \psi(D^{-s}x) - \sum_{s > s_1} \psi(D^{-s}x).
Since \psi is supported in [\frac{1}{4D}, \frac{1}{2}], the two sums on
the right hand side are zero for all
x \in [\frac{1}{2}D^{s_1-1}, \frac{1}{4} D^{s_2 - 1}], hence
x \in [\frac{1}{2}D^{s_1-1}, \frac{1}{4} D^{s_2}] \implies \sum_{s = s_1}^{s_2} \psi(D^{-s}x) = 1.
Since \psi is supported in [\frac{1}{4D}, \frac{1}{2}], we further have
x \notin [\frac{1}{4}D^{s_1 - 1}, \frac{1}{2}D^{s_2}] \implies \sum_{s = s_1}^{s_2} \psi(D^{-s}x) = 0.
Finally, since \psi \ge 0 and
\sum_{s \in \mathbb{Z}} \psi(D^{-s}x) = 1, we have for all x
0 \le \sum_{s = s_1}^{s_2} \psi(D^{-s}x) \le 1.
Let x' \in I_{s_1}(x) and suppose that
D^{s_2 - 1} \le R_Q(\mfa, x'). By the triangle inequality and
eq-vol-sp-cube, it holds that \rho(x,x') \le 8D^{s_1}. We have
\Bigg|\sum_{s = s_1}^{s_2} \int K_s(x',y) f(y) \, \mathrm{d}\mu(y)\Bigg|
= \Bigg|\int \sum_{s = s_1}^{s_2} \psi(D^{-s}\rho(x',y)) K(x',y) f(y) \, \mathrm{d}\mu(y)\Bigg|
\le \Bigg| \int_{8D^{s_1} < \rho(x',y) \le \frac{1}{4}D^{s_2-1}} K(x',y) f(y) \, \mathrm{d}\mu(y) \Bigg|
+ \int_{\frac{1}{4}D^{s_1-1} \le \rho(x',y) \le 8D^{s_1}} |K(x', y)| |f(y)| \, \mathrm{d}\mu(y)
+ \int_{\frac{1}{4}D^{s_2-1} \le \rho(x',y) \le \frac{1}{2}D^{s_2}} |K(x', y)| |f(y)| \, \mathrm{d}\mu(y).
The first term eq-sharp-trunc-term is at most 2T_{\tQ}^\mfa f(x), using
with R_1 := 8D^{s_1}, R_2 := \frac{1}{4}D^{s_2-1} and
R_1 < R_2 < R_{\tQ}(\mfa,x') the triangle inequality in the form
\left|\int_{R_1 < \rho(x',y) \le R_2} K(x',y) f(y) \, \mathrm{d}\mu(y) \right|
\le \left|\int_{R_1 < \rho(x',y) < R_{\tQ}(\mfa,x')} K(x',y) f(y) \, \mathrm{d}\mu(y) \right|
+ \left|\int_{R_2 < \rho(x',y) < R_{\tQ}(\mfa,x')} K(x',y) f(y) \, \mathrm{d}\mu(y) \right|.
The other two terms will be estimated by the finitary maximal function from
Theorem 1.9. For the second term eq-lower-bound-term we use
eqkernel-size which implies that for all y with
\rho(x', y) \ge \frac{1}{4}D^{s_1 - 1}, we have
|K(x', y)| \le \frac{2^{a^3}}{\mu(B(x', \frac{1}{4}D^{s_1 - 1}))}.
Using D=2^{100a^2} and the doubling property doublingx 7 +100a^2
times estimates the last display by
\frac{2^{7a+101a^3}}{\mu(B(x', 32D^{s_1}))}.
By the triangle inequality and eq-vol-sp-cube, we have
B(x', 8D^{s_1}) \subset B(c(I_{s_1}(x)), 16D^{s(I_{s_1}(x))}) \subset B(x', 32D^{s_1}).
Combining this with pf-nontangential-operator-bound-imeq, we conclude that
eq-lower-bound-term is at most
2^{7a + 101a^3} M_{\mathcal{B},1} f(x).
For eq-upper-bound-term we argue similarly. We have for all y with
\rho(x', y) \ge \frac{1}{4}D^{s_2-1}
|K(x', y)| \le \frac{2^{a^3}}{\mu(B(x', \frac{1}{4}D^{s_2-1}))}.
Using the doubling property doublingx 7 + 100a^2 times estimates the
last display by
\frac{2^{7a + 101a^3}}{\mu(B(x', 32 D^{s_2}))}.
Note that by dyadicproperty we have
I_{s_1}(x) \subset I_{s_2}(x), in particular x' \in I_{s_2}(x). By the
triangle inequality and eq-vol-sp-cube, we have
B(x', 8D^{s_2}) \subset B(c(I_{s_2}(x)), 16D^{s(I_{s_2}(x))}) \subset B(x', 32D^{s_2}).
Combining this, eq-upper-bound-term is at most
2^{7a+101a^3} M_{\mathcal{B},1} f(x).
Using a \ge 4, taking a supremum over all x' \in I_{s_1}(x) and then a
supremum over all -S \le s_1 < s_2 \le S, we obtain
T_{\mathcal{N}} f(x) \le 2T_{\tQ}^\mfa f(x) + 2^{102a^3} M_{\mathcal{B},1} f(x).
The lemma now follows from assumption linnontanbound,
Theorem 1.9 and a \ge 4.
We need the following lemma to prepare the L^2-estimate for the auxiliary
operators S_{1, \fu}.
-
TileStructure.Forest.boundary_overlap[complete]
For every cube I \in \mathcal{D}, there exist at most 2^{9a} cubes
J \in \mathcal{D} with s(J) = s(I) and
B(c(I), 16D^{s(I)}) \cap B(c(J), 16 D^{s(J)}) \ne \emptyset.
Lean code for Lemma1.91●1 theorem
Associated Lean declarations
-
TileStructure.Forest.boundary_overlap[complete]
-
TileStructure.Forest.boundary_overlap[complete]
-
theoremdefined in Carleson/ForestOperator/L2Estimate.leancomplete
theorem TileStructure.Forest.boundary_overlap.{u_2}
TileStructure.Forest.boundary_overlap.{u_2} {X : Type u_2} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (I : Grid X) : (TileStructure.Forest.kissing I).card ≤ 2 ^ (9 * a)Lemma 7.2.4.{XType u_2: Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_2→ XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_2→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_2} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_2] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_2) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_2)] (IGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_2) : (TileStructure.Forest.kissingTileStructure.Forest.kissing.{u_2} {X : Type u_2} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (I : Grid X) : Finset (Grid X)The set of cubes in Lemma 7.2.4.IGrid X).cardFinset.card.{u_1} {α : Type u_1} (s : Finset α) : ℕ`s.card` is the number of elements of `s`, aka its cardinality. The notation `#s` can be accessed in the `Finset` locale.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.9 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.aℕ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.theorem TileStructure.Forest.boundary_overlap.{u_2}
TileStructure.Forest.boundary_overlap.{u_2} {X : Type u_2} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (I : Grid X) : (TileStructure.Forest.kissing I).card ≤ 2 ^ (9 * a)Lemma 7.2.4.{XType u_2: Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_2→ XType u_2→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_2→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_2} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_2] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_2) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_2)] (IGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_2) : (TileStructure.Forest.kissingTileStructure.Forest.kissing.{u_2} {X : Type u_2} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (I : Grid X) : Finset (Grid X)The set of cubes in Lemma 7.2.4.IGrid X).cardFinset.card.{u_1} {α : Type u_1} (s : Finset α) : ℕ`s.card` is the number of elements of `s`, aka its cardinality. The notation `#s` can be accessed in the `Finset` locale.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.9 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.aℕ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Lemma 7.2.4.
Proof. Suppose that
B(c(I), 16 D^{s(I)}) \cap B(c(J), 16 D^{s(J)}) \ne \emptyset and
s(I) = s(J). Then
B(c(I), 33 D^{s(I)}) \subset B(c(J), 128 D^{s(J)}). Hence by the doubling
property doublingx
2^{9a}\mu(B(c(J), \frac{1}{4}D^{s(J)})) \ge \mu(B(c(I), 33 D^{s(I)})),
and by the triangle inequality,
B(c(J), \frac{1}{4}D^{s(J)}) is contained in
B(c(I), 33 D^{s(I)}).
If \mathcal{C} is any finite collection of cubes J \in \mathcal{D}
satisfying s(J) = s(I) and
B(c(I), 16 D^{s(I)}) \cap B(c(J), 16 D^{s(J)}) \ne\emptyset,
then it follows from eq-vol-sp-cube and pairwise disjointedness of cubes of
the same scale dyadicproperty that the balls
B(c(J), \frac{1}{4} D^{s(J)}) are pairwise disjoint. Hence
\mu(B(c(I), 33 D^{s(I)})) \ge \sum_{J \in \mathcal{C}} \mu(B(c(J), \frac{1}{4}D^{s(J)}))
\ge |\mathcal{C}| 2^{-9a} \mu(B(c(I), 33 D^{s(I)})).
Since \mu is doubling and \mu \ne 0, we have
\mu(B(c(I), 33D^{s(I)})) > 0. The lemma follows after dividing by
2^{-9a}\mu(B(c(I), 33D^{s(I)})).
Now we can bound the operators S_{1, \fu}.
Proof of Lemma 1.90. Note that by definition,
S_{1,\fu}f is a finite sum of indicator functions of cubes
I \in \mathcal{D} for each locally integrable f, and hence is bounded,
has bounded support and is integrable. Let g be another function with the
same three properties. Then \bar g S_{1,\fu}f is integrable, and we have
\Bigg|\int \bar g(y) S_{1,\fu}f(y) \, \mathrm{d}\mu(y)\Bigg|
= \Bigg|\sum_{I\in\mathcal{D}} \frac{1}{\mu(B(c(I), 16 D^{s(I)}))} \int_I \bar g(y) \, \mathrm{d}\mu(y)
\times \sum_{\substack{J\in \mathcal{J}(\fT(\fu))\,:\,J\subseteq B(c(I), 16 D^{s(I)})\\s(J)\le s(I)}} D^{(s(J)-s(I))/a}\int_J |f(y)| \,\mathrm{d}\mu(y)\Bigg|
\le \sum_{I\in\mathcal{D}} \frac{1}{\mu(B(c(I), 16D^{s(I)}))} \int_{B(c(I), 16D^{s(I)})} | g(y)| \, \mathrm{d}\mu(y)
\times \sum_{\substack{J\in \mathcal{J}(\fT(\fu))\,:\,J\subseteq B(c(I), 16 D^{s(I)})\\ s(J) \le s(I)}} D^{(s(J)-s(I))/a}\int_J |f(y)| \,\mathrm{d}\mu(y).
Changing the order of summation and using
J \subset B(c(I), 16 D^{s(I)}) to bound the first average integral by
M_{\mathcal{B},1}|g|(y) for any y \in J, we obtain
\le \sum_{J\in\mathcal{J}(\fT(\fu))}\int_J|f(y)| M_{\mathcal{B},1}|g|(y) \, \mathrm{d}\mu(y) \sum_{\substack{I \in \mathcal{D} \, : \, J\subset B(c(I),16 D^{s(I)})\\ s(I) \ge s(J)}} D^{(s(J)-s(I))/a}.
By Lemma 1.91, there are at most 2^{9a} cubes I at each scale
satisfying the inclusion J \subset B(c(I),16D^{s(I)}). Since
D^{-1/a}\le\frac12, (1 - D^{-1/a})^{-1} \le 2. Using this estimate for
the sum of the geometric series, we conclude that
eq-boundary-operator-bound-1 is at most
2^{9a+1} \sum_{J\in\mathcal{J}(\fT(\fu))}\int_J|f(y)| M_{\mathcal{B},1}|g|(y) \, \mathrm{d}\mu(y).
The collection \mathcal{J} is a partition of
\bigcup_{I \in \mathcal{D}} I, so this equals
2^{9a+1} \int_X|f(y)| M_{\mathcal{B},1}|g|(y) \, \mathrm{d}\mu(y).
Using Cauchy-Schwarz and Theorem 1.9, we conclude
\left|\int \bar g S_{1,\fu}f \, \mathrm{d}\mu \right| \le 2^{12a} \|g\|_2\|f\|_2.
The lemma now follows by choosing g = S_{1,\fu}f and dividing on both
sides by the finite \|S_{1,\fu}f\|_2.
1.5.13. The quantitative L^2 tree estimate
The main result of this subsection is the following quantitative bound for
operators associated to trees, with decay in the densities \dens_1 and
\dens_2.
-
TileStructure.Forest.density_tree_bound1[complete] -
TileStructure.Forest.density_tree_bound2[complete]
Uses Lemma 1.88, Lemma 1.93, and Lemma 1.94.
Let \fu \in \fU. Then for all bounded f with bounded support and bounded
g supported on G we have
\left|\int_X \bar g \sum_{\fp \in \fT(\fu)} T_{\fp }f \, \mathrm{d}\mu \right| \le 2^{181a^3} \dens_1(\fT(\fu))^{1/2} \|f\|_2\|g\|_2.
If additionally \text{support}(f) \subseteq F, then we have
\left| \int_X \bar g \sum_{\fp \in \fT(\fu)} T_{\fp }f\, \mathrm{d}\mu \right| \le 2^{282a^3} \dens_1(\fT(\fu))^{1/2} \dens_2(\fT(\fu))^{1/2} \|f\|_2\|g\|_2.
Lean code for Lemma1.92●2 theorems
Associated Lean declarations
-
TileStructure.Forest.density_tree_bound1[complete]
-
TileStructure.Forest.density_tree_bound2[complete]
-
TileStructure.Forest.density_tree_bound1[complete] -
TileStructure.Forest.density_tree_bound2[complete]
-
theoremdefined in Carleson/ForestOperator/QuantativeEstimate.leancomplete
theorem TileStructure.Forest.density_tree_bound1.{u_1}
TileStructure.Forest.density_tree_bound1.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {f g : X → ℂ} (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) (hu : u ∈ t) : ‖∫ (x : X), (starRingEnd ℂ) (g x) * carlesonSum ((fun x ↦ t.𝔗 x) u) f x‖ₑ ≤ ↑(TileStructure.Forest.C7_3_1_1 a) * dens₁ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * MeasureTheory.eLpNorm f 2 MeasureTheory.volume * MeasureTheory.eLpNorm g 2 MeasureTheory.volumeFirst part of Lemma 7.3.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂgX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (gX → ℂxX) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_1_1TileStructure.Forest.C7_3_1_1 (a : ℕ) : NNRealThe constant used in `density_tree_bound1` and `adjoint_tree_estimate`. Has value `2 ^ (181 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.density_tree_bound1.{u_1}
TileStructure.Forest.density_tree_bound1.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {f g : X → ℂ} (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) (hu : u ∈ t) : ‖∫ (x : X), (starRingEnd ℂ) (g x) * carlesonSum ((fun x ↦ t.𝔗 x) u) f x‖ₑ ≤ ↑(TileStructure.Forest.C7_3_1_1 a) * dens₁ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * MeasureTheory.eLpNorm f 2 MeasureTheory.volume * MeasureTheory.eLpNorm g 2 MeasureTheory.volumeFirst part of Lemma 7.3.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂgX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (gX → ℂxX) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_1_1TileStructure.Forest.C7_3_1_1 (a : ℕ) : NNRealThe constant used in `density_tree_bound1` and `adjoint_tree_estimate`. Has value `2 ^ (181 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.First part of Lemma 7.3.1.
-
theoremdefined in Carleson/ForestOperator/QuantativeEstimate.leancomplete
theorem TileStructure.Forest.density_tree_bound2.{u_1}
TileStructure.Forest.density_tree_bound2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {f g : X → ℂ} (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (h2f : Function.support f ⊆ F) (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) (hu : u ∈ t) : ‖∫ (x : X), (starRingEnd ℂ) (g x) * carlesonSum ((fun x ↦ t.𝔗 x) u) f x‖ₑ ≤ ↑(TileStructure.Forest.C7_3_1_2 a) * dens₁ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * dens₂ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * MeasureTheory.eLpNorm f 2 MeasureTheory.volume * MeasureTheory.eLpNorm g 2 MeasureTheory.volumeSecond part of Lemma 7.3.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂgX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2fFunction.support f ⊆ F: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.fX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.FSet X) (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (gX → ℂxX) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_1_2TileStructure.Forest.C7_3_1_2 (a : ℕ) : NNRealThe constant used in `density_tree_bound2` and `indicator_adjoint_tree_estimate`. Has value `2 ^ (282 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₂dens₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.density_tree_bound2.{u_1}
TileStructure.Forest.density_tree_bound2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {f g : X → ℂ} (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (h2f : Function.support f ⊆ F) (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) (hu : u ∈ t) : ‖∫ (x : X), (starRingEnd ℂ) (g x) * carlesonSum ((fun x ↦ t.𝔗 x) u) f x‖ₑ ≤ ↑(TileStructure.Forest.C7_3_1_2 a) * dens₁ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * dens₂ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * MeasureTheory.eLpNorm f 2 MeasureTheory.volume * MeasureTheory.eLpNorm g 2 MeasureTheory.volumeSecond part of Lemma 7.3.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂgX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2fFunction.support f ⊆ F: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.fX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.FSet X) (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (gX → ℂxX) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.carlesonSumcarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe operator `T_ℭ f` defined at the bottom of Section 7.4. We will use this in other places of the formalization as well.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_1_2TileStructure.Forest.C7_3_1_2 (a : ℕ) : NNRealThe constant used in `density_tree_bound2` and `indicator_adjoint_tree_estimate`. Has value `2 ^ (282 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₂dens₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Second part of Lemma 7.3.1.
Below, we deduce this lemma from Lemma 1.88 and the following two estimates controlling the size of support of the operator and its adjoint.
Uses Lemma 1.11.
Let \fu \in \fU and L \in \mathcal{L}(\fT(\fu)). Then
\mu(L \cap G \cap \bigcup_{\fp \in \fT(\fu)} E(\fp)) \le 2^{101a^3} \dens_1(\fT(\fu)) \mu(L).
Lean code for Lemma1.93●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/QuantativeEstimate.leancomplete
theorem TileStructure.Forest.local_dens1_tree_bound.{u_1}
TileStructure.Forest.local_dens1_tree_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {L : Grid X} (hu : u ∈ t) (hL : L ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) : MeasureTheory.volume (↑L ∩ G ∩ ⋃ p ∈ (fun x ↦ t.𝔗 x) u, E p) ≤ ↑(TileStructure.Forest.C7_3_2 a) * dens₁ ((fun x ↦ t.𝔗 x) u) * MeasureTheory.volume ↑LLemma 7.3.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hLL ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u): LGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑LGrid X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.GSet X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.⋃ p𝔓 X∈ (fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X, EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_2TileStructure.Forest.C7_3_2 (a : ℕ) : NNRealThe constant used in `local_dens1_tree_bound`. Has value `2 ^ (101 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑LGrid Xtheorem TileStructure.Forest.local_dens1_tree_bound.{u_1}
TileStructure.Forest.local_dens1_tree_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {L : Grid X} (hu : u ∈ t) (hL : L ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u)) : MeasureTheory.volume (↑L ∩ G ∩ ⋃ p ∈ (fun x ↦ t.𝔗 x) u, E p) ≤ ↑(TileStructure.Forest.C7_3_2 a) * dens₁ ((fun x ↦ t.𝔗 x) u) * MeasureTheory.volume ↑LLemma 7.3.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {LGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hLL ∈ TileStructure.Forest.𝓛 ((fun x ↦ t.𝔗 x) u): LGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓛TileStructure.Forest.𝓛.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓛(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑LGrid X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.GSet X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.⋃ p𝔓 X∈ (fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X, EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_2TileStructure.Forest.C7_3_2 (a : ℕ) : NNRealThe constant used in `local_dens1_tree_bound`. Has value `2 ^ (101 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑LGrid XLemma 7.3.2.
Let \fu \in \fU and J \in \mathcal{J}(\fT(\fu)). Then
\mu(F \cap J) \le 2^{201a^3} \dens_2(\fT(\fu)) \mu(J).
Lean code for Lemma1.94●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/QuantativeEstimate.leancomplete
theorem TileStructure.Forest.local_dens2_tree_bound.{u_1}
TileStructure.Forest.local_dens2_tree_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {J : Grid X} (hu : u ∈ t) (hJ : J ∈ TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) : MeasureTheory.volume (F ∩ ↑J) ≤ ↑(TileStructure.Forest.C7_3_3 a) * dens₂ ((fun x ↦ t.𝔗 x) u) * MeasureTheory.volume ↑JLemma 7.3.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hJJ ∈ TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u): JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.FSet X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑JGrid X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_3TileStructure.Forest.C7_3_3 (a : ℕ) : NNRealThe constant used in `local_dens2_tree_bound`. Has value `2 ^ (201 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₂dens₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑JGrid Xtheorem TileStructure.Forest.local_dens2_tree_bound.{u_1}
TileStructure.Forest.local_dens2_tree_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {J : Grid X} (hu : u ∈ t) (hJ : J ∈ TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u)) : MeasureTheory.volume (F ∩ ↑J) ≤ ↑(TileStructure.Forest.C7_3_3 a) * dens₂ ((fun x ↦ t.𝔗 x) u) * MeasureTheory.volume ↑JLemma 7.3.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hJJ ∈ TileStructure.Forest.𝓙 ((fun x ↦ t.𝔗 x) u): JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.TileStructure.Forest.𝓙TileStructure.Forest.𝓙.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔖 : Set (𝔓 X)) : Set (Grid X)The definition of `𝓙(𝔖), defined above Lemma 7.1.2((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X)) : MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.FSet X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑JGrid X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_3TileStructure.Forest.C7_3_3 (a : ℕ) : NNRealThe constant used in `local_dens2_tree_bound`. Has value `2 ^ (201 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₂dens₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.↑JGrid XLemma 7.3.3.
Proof of Lemma 1.92. Denote
\mathcal{E}(\fu) = \bigcup_{\fp \in \fT(\fu)} E(\fp).
Then we have
\left| \int_X \bar g \sum_{\fp \in \fT(\fu)} T_{\fp} f \, \mathrm{d}\mu \right| = \left| \int_X \overline{ g\mathbf{1}_{\mathcal{E}(\fu)}} \sum_{\fp \in \fT(\fu)} T_{\fp} (\mathbf{1}_{\scI(\fu)}f) \, \mathrm{d}\mu \right|.
By Lemma 1.88, this is bounded by
\le 2^{130a^3}\|P_{\mathcal{J}(\fT(\fu))}|f|\|_2 \|P_{\mathcal{L}(\fT(\fu))} |\mathbf{1}_{\mathcal{E}(\fu)}g|\|_2.
We bound the two factors separately. We have
\|P_{\mathcal{L}(\fT(\fu))} |\mathbf{1}_{\mathcal{E}(\fu)}g|\|_2 = \left( \sum_{L \in \mathcal{L}(\fT(\fu))} \frac{1}{\mu(L)} \left(\int_{L \cap \mathcal{E}(\fu)} |g(y)| \, \mathrm{d}\mu(y)\right)^2 \right)^{1/2}.
By Cauchy-Schwarz and Lemma 1.93 this is at most
\le \left( \sum_{L \in \mathcal{L}(\fT(\fu))} 2^{101a^3} \dens_1(\fT(\fu)) \int_{L \cap \mathcal{E}(\fu)} |g(y)|^2 \, \mathrm{d}\mu(y) \right)^{1/2}.
Since cubes L \in \mathcal{L}(\fT(\fu)) are pairwise disjoint by
Lemma 1.83, this is
\le 2^{51 a^3} \dens_1(\fT(\fu))^{1/2} \|g\|_2.
Similarly, we have
\|P_{\mathcal{J}(\fT(\fu))}|f|\|_2 = \left( \sum_{J \in \mathcal{J}(\fT(\fu))} \frac{1}{\mu(J)} \left(\int_J |f(y)| \, \mathrm{d}\mu(y)\right)^2 \right)^{1/2}.
By Cauchy-Schwarz, this is
\le \left( \sum_{J \in \mathcal{J}(\fT(\fu))} \int_J |f(y)|^2 \, \mathrm{d}\mu(y) \right)^{1/2}.
Since cubes in \mathcal{J}(\fT(\fu)) are pairwise disjoint by
Lemma 1.83, this is at most
\|f\|_2.
Combining eq-both-factors-tree, eq-factor-L-tree and eq-factor-J-tree
gives eq-cor-tree-est.
If f \le \mathbf{1}_F then f = f\mathbf{1}_F, so
\left( \sum_{J \in \mathcal{J}(\fT(\fu))} \frac{1}{\mu(J)} \left(\int_J |f(y)| \, \mathrm{d}\mu(y)\right)^2 \right)^{1/2}
=\left(\sum_{J \in \mathcal{J}(\fT(\fu))} \frac{1}{\mu(J)} \left(\int_{J \cap F} |f(y)| \, \mathrm{d}\mu(y)\right)^2 \right)^{1/2}.
We estimate as before, using now Lemma 1.94 and Cauchy-Schwarz,
and obtain that this is
\le 2^{101a^3} \dens_2(\fT(\fu))^{1/2} \|f\|_2.
Combining this with eq-both-factors-tree and eq-factor-L-tree gives
eq-cor-tree-est-F.
Now we prove the two auxiliary estimates.
Proof of Lemma 1.93. If the set on the right hand side is empty,
then eq-1density-estimate-tree holds. If not, then there exists
\fp \in \fT(\fu) with L \cap \scI(\fp) \ne \emptyset.
Continuing the proof of Lemma 1.93, suppose first that
there exists such \fp with \ps(\fp) \le s(L). Then by
dyadicproperty \scI(\fp) \subset L, which gives by the definition of
\mathcal{L}(\fT(\fu)) that s(L) = -S and hence L = \scI(\fp). Let
\fq \in \fT(\fu) with E(\fq) \cap L \ne \emptyset. Since
s(L) = -S \le \ps(\fq) it follows from dyadicproperty that
\scI(\fp) = L \subset \scI(\fq). We have then by
Lemma 1.11
d_{\fp}(\fcc(\fp), \fcc(\fq)) \le d_{\fp}(\fcc(\fp), \fcc(\fu)) + d_{\fp}(\fcc(\fq), \fcc(\fu))
\le d_{\fp}(\fcc(\fp), \fcc(\fu)) + d_{\fq}(\fcc(\fq), \fcc(\fu)).
Using that \fp, \fq \in \fT(\fu) and forest1, this is at most 8.
Using again the triangle inequality and Lemma 1.11, we obtain
that for each q \in B_{\fq}(\fcc(\fq), 1)
d_{\fp}(\fcc(\fp), q) \le d_{\fp}(\fcc(\fp), \fcc(\fq)) + d_{\fq}(\fcc(\fq), q) \le 9.
Thus L \cap G \cap E(\fq) \subset E_2(9, \fp). We obtain
\mu(L \cap G \cap \bigcup_{\fq \in \fT(\fu)} E(\fq)) \le \mu(E_2(9, \fp)).
By the definition of \dens_1, this is bounded by
9^a \dens_1(\fT(\fu)) \mu(\scI(\fp)) =9^a \dens_1(\fT(\fu)) \mu(L).
Since a \ge 4, eq-1density-estimate-tree follows in this case.
Now suppose that for each \fp \in \fT(\fu) with
L \cap E(\fp) \ne \emptyset, we have \ps(\fp) > s(L). Since there exists
at least one such \fp, there exists in particular at least one cube
L'' \in \mathcal{D} with L \subset L'' and s(L'') > s(L). By
coverdyadic, there exists L' \in \mathcal{D} with L \subset L' and
s(L') = s(L) + 1. By the definition of \mathcal{L}(\fT(\fu)) there
exists a tile \fp'' \in \fT(\fu) with \scI(\fp'') \subset L'.
It suffices to show that there exists a tile \fp' \in \fP(\fT(\fu)) with
\scI(\fp') = L', d_{\fp'}(\fcc(\fp'), \fcc(\fu)) < 4 and
9\fp'' \lesssim 9\fp'. For then, let \fq \in \fT(\fu) with
L \cap E(\fq) \ne \emptyset. As shown above, this implies
\ps(\fq) \ge s(L'), so by dyadicproperty L' \subset \scI(\fq). If
q \in B_{\fq}(\fcc(\fq), 1), then by a similar calculation as above, using
the triangle inequality, Lemma 1.11 and forest1, we obtain
d_{\fp'}(\fcc(\fp'), q) \le d_{\fp'}(\fcc(\fp'), \fcc(\fq)) + d_{\fq}(\fcc(\fq), q) \le 9.
Thus L \cap G \cap E(\fq) \subset E_2(9, \fp'). We deduce using the
definition definedens1 of \dens_1
\mu(L \cap G \cap \bigcup_{\fq \in \fT(\fu)} E(\fq)) \le \mu(E_2(9, \fp')) \le 9^a \dens_1(\fT(\fu)) \mu(L').
Using the doubling property doublingx, eq-vol-sp-cube, and a \ge 4
this is estimated by
9^a 2^{100a^3 + 5a}\dens_1(\fT(\fu)) \mu(L) \le 2^{101 a^3} \dens_1(\fT(\fu))\mu(L).
To show existence of \fp' with the given properties, if
\scI(\fp'') = L' we can take \fp' = \fp'', which satisfies the distance
property by forest1 and the other properties trivially. Otherwise, let
\fp' be the unique tile such that \scI(\fp') = L' and such that
\Omega(\fu) \cap \Omega(\fp') \ne \emptyset. Since
\scI(\fp') \subset \scI(\fp) and \fp \in \fT(\fu), we have
\fp' \in \fP(\fT(\fu)). Since by forest1
\ps(\fp') = s(L') \le \ps(\fp) < \ps(\fu), we have by dyadicproperty and
eq-freq-dyadic that \Omega(\fu) \subset \Omega(\fp'), and hence the
distance property. 9\fp'' \lesssim 9\fp' follows by the triangle
inequality, forest1, Lemma 1.11 and eq-freq-comp-ball. This
completes the proof.
Proof of Lemma 1.94. We prove the inequality with the constant
2^{201a^3} replaced by 2 ^ {200a^3 + 14a}; this is stronger because
a \geq 4. It suffices to show the existence of a tile \fp \in \fT(\fu)
and an r \geq 4 D ^ {\ps(\fp)} such that
J \subset B(\pc(\fp), r) and
\mu(B(\pc(\fp), r)) ≤ 2 ^ {200a^3 + 14a} \mu(J), because then it follows
from the definition definedens2 of \dens_2 that
\mu(F \cap J) \le \mu(F \cap B(\pc(\fp), r))
\le \dens_2(\fT(\fu)) \mu(B(\pc(\fp), r)) \le 2^{200a^3 + 14a} \dens_2(\fT(\fu))\mu(J).
In particular, these criteria are satisfied, with r = 4 D ^ {\ps(\fp)},
by any \fp \in \fT(\fu) such that
J \subseteq B(\pc(\fp, 4 D ^ {\ps(\fp)})) and
\mu(\scI(\fp)) \le 2^{100a^3 + 10a} \mu(J), because then by the doubling
property doublingx
\mu(B(\pc(\fp), 4 D ^ {\ps(\fp)})) \le 2^{4a} \mu(B(\pc(\fp), D ^ {\ps(\fp)} / 4))
\le 2^{4a} \mu(\scI(\fp)) \le 2^{100a^3 + 14a} \mu(J).
Suppose first that s(J) = S. Then J = I_0, so subsetmaxcube and the
fact that J \in \mathcal{J}(\fT(\fu)) \subseteq \mathcal{J}_0(\fT(\fu))
imply that s(J) = -S. Thus S = 0. It follows that J is the only
dyadic cube, so any \fp \in \fT(\fu) has \scI(\fp) = J, and therefore
satisfies J \subseteq B(\pc(\fp, 4 D ^ {\ps(\fp)})) and
\mu(\scI(\fp)) \le 2^{100a^3 + 10a} \mu(J).
It remains to consider the case s(J) < S. Then, by coverdyadic and
dyadicproperty, there exists some cube J' \in \mathcal{D} with
s(J') = s(J) + 1 and J \subset J'. By definition of
\mathcal{J}(\fT(\fu)) there exists some \fp \in \fT(\fu) such that
\scI(\fp) \subset B(c(J'), 100 D^{s(J') + 1}).
Since c(J) \in J \subset J' \subset B(c(J'), 4D^{s(J')}), the triangle
inequality, s(J') = s(J) + 1 and D=2^{100a^2} imply
B(c(J'), 204D^{s(J')+1}) \subset B(c(J), 204D^{s(J') + 1} + 4D^{s(J')})
\subset B(c(J), 2^8 D^{s(J) + 2}).
From the doubling property doublingx, D=2^{100a^2} and
eq-vol-sp-cube, we obtain
\mu(B(c(J'), 204D^{s(J') + 1})) \leq 2 ^ {200a^3 + 10a} \mu(J).
If J \subset B(\pc(\fp), 4 D^{\ps(\fp)}), then we need only check that
\mu(\scI(\fp)) \le 2^{100a^3 + 10a} \mu(J). This follows immediately from
\scI(\fp) \subset B(c(J'), 100 D^{s(J') + 1}) and
measure-comparison.
From now on we assume J \not \subset B(\pc(\fp), 4 D^{\ps(\fp)}). Since
\pc(\fp) \in \scI(\fp) \subset B(c(J'), 100 D^{s(J') + 1}),
we have by eq-vol-sp-cube and the triangle inequality
J \subset J' \subset B(c(J'), 4D^{s(J')}) \subset B(\pc(\fp), 104 D^{s(J') + 1}).
In particular this implies 104 D^{s(J') + 1} > 4D^{\ps(\fp)}. By the
triangle inequality we also have
B(\pc(\fp), 104 D^{s(J') + 1}) \subset B(c(J), 204 D^{s(J') + 1}),
so from measure-comparison,
\mu( B(\pc(\fp), 104 D^{s(J') + 1})) \le 2^{200a^3 + 10a} \mu(J),
which proves \fp satisfies the needed criteria with
r=104 D^{s(J') + 1}.
1.5.14. Almost orthogonality of separated trees
The main result of this subsection is the almost orthogonality estimate for operators associated to distinct trees in a forest in Lemma 1.98 below. We will deduce it from Lemmas Lemma 1.99 and Lemma 1.100, which are proven in Subsections [??] and [??], respectively. Before stating it, we introduce some relevant notation.
The adjoint of the operator T_{\fp} defined in definetp is given by
T_{\fp}^* g(x) = \int_{E(\fp)} \overline{K_{\ps(\fp)}(y,x)} e(-\tQ(y)(x)+ \tQ(y)(y)) g(y) \, \mathrm{d}\mu(y).
-
TileStructure.Forest.adjoint_tile_support1[complete] -
TileStructure.Forest.adjoint_tile_support2[complete]
Uses Lemma 1.12.
For each \fp \in \fP, we have
T_{\fp}^* g = \mathbf{1}_{B(\pc(\fp), 5D^{\ps(\fp)})} T_{\fp}^* \mathbf{1}_{\scI(\fp)} g.
For each \fu \in \fU and each \fp \in \fT(\fu), we have
T_{\fp}^* g = \mathbf{1}_{\scI(\fu)} T_{\fp}^* \mathbf{1}_{\scI(\fu)} g.
Lean code for Lemma1.95●2 theorems
Associated Lean declarations
-
TileStructure.Forest.adjoint_tile_support1[complete]
-
TileStructure.Forest.adjoint_tile_support2[complete]
-
TileStructure.Forest.adjoint_tile_support1[complete] -
TileStructure.Forest.adjoint_tile_support2[complete]
-
theoremdefined in Carleson/ForestOperator/AlmostOrthogonality.leancomplete
theorem TileStructure.Forest.adjoint_tile_support1.{u_1}
TileStructure.Forest.adjoint_tile_support1.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p : 𝔓 X} {f : X → ℂ} : adjointCarleson p f = (Metric.ball (𝔠 p) (5 * ↑(defaultD a) ^ 𝔰 p)).indicator (adjointCarleson p ((↑(𝓘 p)).indicator f))Part 1 of Lemma 7.4.1. Todo: update blueprint with precise properties needed on the function.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} : adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XfX → ℂ=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.5 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 X((↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.fX → ℂ))theorem TileStructure.Forest.adjoint_tile_support1.{u_1}
TileStructure.Forest.adjoint_tile_support1.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {p : 𝔓 X} {f : X → ℂ} : adjointCarleson p f = (Metric.ball (𝔠 p) (5 * ↑(defaultD a) ^ 𝔰 p)).indicator (adjointCarleson p ((↑(𝓘 p)).indicator f))Part 1 of Lemma 7.4.1. Todo: update blueprint with precise properties needed on the function.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {p𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} : adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XfX → ℂ=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.5 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 X((↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.fX → ℂ))Part 1 of Lemma 7.4.1. Todo: update blueprint with precise properties needed on the function.
-
theoremdefined in Carleson/ForestOperator/AlmostOrthogonality.leancomplete
theorem TileStructure.Forest.adjoint_tile_support2.{u_1}
TileStructure.Forest.adjoint_tile_support2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u p : 𝔓 X} {f : X → ℂ} (hu : u ∈ t) (hp : p ∈ (fun x ↦ t.𝔗 x) u) : adjointCarleson p f = (↑(𝓘 u)).indicator (adjointCarleson p ((↑(𝓘 u)).indicator f))Part 2 of Lemma 7.4.1. Todo: update blueprint with precise properties needed on the function.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hpp ∈ (fun x ↦ t.𝔗 x) u: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) : adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XfX → ℂ=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.(↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 X((↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.fX → ℂ))theorem TileStructure.Forest.adjoint_tile_support2.{u_1}
TileStructure.Forest.adjoint_tile_support2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u p : 𝔓 X} {f : X → ℂ} (hu : u ∈ t) (hp : p ∈ (fun x ↦ t.𝔗 x) u) : adjointCarleson p f = (↑(𝓘 u)).indicator (adjointCarleson p ((↑(𝓘 u)).indicator f))Part 2 of Lemma 7.4.1. Todo: update blueprint with precise properties needed on the function.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hpp ∈ (fun x ↦ t.𝔗 x) u: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) : adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XfX → ℂ=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.(↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 X((↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.fX → ℂ))Part 2 of Lemma 7.4.1. Todo: update blueprint with precise properties needed on the function.
Proof. By forest1, E(\fp) \subset \scI(\fp) \subset \scI(\fu). Thus by
definetp*
T_{\fp}^* g(x) = T_{\fp}^* (\mathbf{1}_{\scI(\fp)} g)(x)
= \int_{E(\fp)} \overline{K_{\ps(\fp)}(y,x)} e(-\tQ(y)(x) + \tQ(y)(y)) \mathbf{1}_{\scI(\fp)}(y) g(y) \, \mathrm{d}\mu(y).
If this integral is not 0, then there exists y \in \scI(\fp) such that
K_{\ps(\fp)}(y,x) \ne 0. By supp-Ks, eq-vol-sp-cube and the triangle
inequality, it follows that
x \in B(\pc(\fp), 5 D^{\ps(\fp)}).
Thus
T_{\fp}^* g(x) = \mathbf{1}_{B(\pc(\fp), 5D^{\ps(\fp)})}(x) T_{\fp}^* (\mathbf{1}_{\scI(\fp)} g)(x).
The second claimed equation follows now since
\scI(\fp) \subset \scI(\fu) and by forest6 we have
B(\pc(\fp), 5D^{\ps(\fp)}) \subset \scI(\fu).
Uses Lemma 1.92.
For all bounded g supported on G we have that
\left\| \sum_{\fp \in \fT(\fu)} T_{\fp}^* g\right\|_2 \le 2^{181a^3} \dens_1(\fT(\fu))^{1/2} \|g\|_2
\left\| \mathbf{1}_F \sum_{\fp \in \fT(\fu)} T_{\fp}^* g\right\|_2 \le 2^{282a^3} \dens_1(\fT(\fu))^{1/2} \dens_2(\fT(\fu))^{1/2} \|g\|_2.
Lean code for Lemma1.96●2 theorems
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/AlmostOrthogonality.leancomplete
theorem TileStructure.Forest.adjoint_tree_estimate.{u_1}
TileStructure.Forest.adjoint_tree_estimate.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {g : X → ℂ} (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) (hu : u ∈ t) : MeasureTheory.eLpNorm (adjointCarlesonSum ((fun x ↦ t.𝔗 x) u) g) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_3_1_1 a) * dens₁ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * MeasureTheory.eLpNorm g 2 MeasureTheory.volumePart 1 of Lemma 7.4.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) gX → ℂ) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_1_1TileStructure.Forest.C7_3_1_1 (a : ℕ) : NNRealThe constant used in `density_tree_bound1` and `adjoint_tree_estimate`. Has value `2 ^ (181 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.adjoint_tree_estimate.{u_1}
TileStructure.Forest.adjoint_tree_estimate.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {g : X → ℂ} (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) (hu : u ∈ t) : MeasureTheory.eLpNorm (adjointCarlesonSum ((fun x ↦ t.𝔗 x) u) g) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_3_1_1 a) * dens₁ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * MeasureTheory.eLpNorm g 2 MeasureTheory.volumePart 1 of Lemma 7.4.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) gX → ℂ) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_1_1TileStructure.Forest.C7_3_1_1 (a : ℕ) : NNRealThe constant used in `density_tree_bound1` and `adjoint_tree_estimate`. Has value `2 ^ (181 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Part 1 of Lemma 7.4.2.
-
theoremdefined in Carleson/ForestOperator/AlmostOrthogonality.leancomplete
theorem TileStructure.Forest.indicator_adjoint_tree_estimate.{u_1}
TileStructure.Forest.indicator_adjoint_tree_estimate.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {g : X → ℂ} (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) (hu : u ∈ t) : MeasureTheory.eLpNorm (F.indicator (adjointCarlesonSum ((fun x ↦ t.𝔗 x) u) g)) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_3_1_2 a) * dens₁ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * dens₂ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * MeasureTheory.eLpNorm g 2 MeasureTheory.volumePart 2 of Lemma 7.4.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) gX → ℂ)) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_1_2TileStructure.Forest.C7_3_1_2 (a : ℕ) : NNRealThe constant used in `density_tree_bound2` and `indicator_adjoint_tree_estimate`. Has value `2 ^ (282 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₂dens₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.indicator_adjoint_tree_estimate.{u_1}
TileStructure.Forest.indicator_adjoint_tree_estimate.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {g : X → ℂ} (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) (hu : u ∈ t) : MeasureTheory.eLpNorm (F.indicator (adjointCarlesonSum ((fun x ↦ t.𝔗 x) u) g)) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_3_1_2 a) * dens₁ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * dens₂ ((fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * MeasureTheory.eLpNorm g 2 MeasureTheory.volumePart 2 of Lemma 7.4.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) gX → ℂ)) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_3_1_2TileStructure.Forest.C7_3_1_2 (a : ℕ) : NNRealThe constant used in `density_tree_bound2` and `indicator_adjoint_tree_estimate`. Has value `2 ^ (282 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₁dens₁.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₂dens₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Part 2 of Lemma 7.4.2.
Proof. By Lemma 1.92, we have for all bounded f and g with
|g| \le \mathbf{1}_G that
\left| \int_X \overline{\sum_{\fp\in \fT(\fu)} T_{\fp}^* g} f \,\mathrm{d}\mu \right| = \left| \int_X \overline{g} \sum_{\fp \in \fT(\fu)} T_{\fp} f \,\mathrm{d}\mu \right|
\le 2^{181a^3} \dens_1(\fT(\fu))^{1/2} \|g\|_2 \|f\|_2.
Let f = \sum_{\fp \in \fT(\fu)} T_{\fp}^* g. Since
|g| \le \mathbf{1}_G, f is bounded and has bounded support. In
particular \|f\|_2 < \infty. Dividing eq-adjoint-bound by \|f\|_2
completes the proof.
The proof of the second part is similar with
f = \mathbf{1}_F \sum_{\fp \in \fT(\fu)} T_{\fp}^* g.
We define
S_{2,\fu}g := \left|\sum_{\fp \in \fT(\fu)} T_{\fp}^*g \right| + M_{\mathcal{B},1}g + |g|.
Uses Lemma 1.96.
We have for all \fu \in \fU and all bounded g supported on G
\|S_{2, \fu} g\|_2 \le 2^{182a^3} \|g\|_2.
Lean code for Lemma1.97●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/AlmostOrthogonality.leancomplete
theorem TileStructure.Forest.adjoint_tree_control.{u_1}
TileStructure.Forest.adjoint_tree_control.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {f : X → ℂ} (hu : u ∈ t) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (h2f : Function.support f ⊆ G) : MeasureTheory.eLpNorm (fun x ↦ t.adjointBoundaryOperator u f x) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_4_3 a) * MeasureTheory.eLpNorm f 2 MeasureTheory.volumeLemma 7.4.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2fFunction.support f ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.fX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u𝔓 XfX → ℂxX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_4_3TileStructure.Forest.C7_4_3 (a : ℕ) : NNRealThe constant used in `adjoint_tree_control`. Has value `2 ^ (182 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.adjoint_tree_control.{u_1}
TileStructure.Forest.adjoint_tree_control.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u : 𝔓 X} {f : X → ℂ} (hu : u ∈ t) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (h2f : Function.support f ⊆ G) : MeasureTheory.eLpNorm (fun x ↦ t.adjointBoundaryOperator u f x) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_4_3 a) * MeasureTheory.eLpNorm f 2 MeasureTheory.volumeLemma 7.4.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2fFunction.support f ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.fX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u𝔓 XfX → ℂxX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_4_3TileStructure.Forest.C7_4_3 (a : ℕ) : NNRealThe constant used in `adjoint_tree_control`. Has value `2 ^ (182 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Lemma 7.4.3.
Proof. This follows immediately from Minkowski's inequality,
Theorem 1.9 and Lemma 1.96, using that a \ge 4.
Now we are ready to state the main result of this subsection.
Uses Lemma 1.99 and Lemma 1.100.
For any \fu_1 \ne \fu_2 \in \fU and all bounded g_1, g_2 with bounded
support, we have
\left| \int_X \sum_{\fp_1 \in \fT(\fu_1)} \sum_{\fp_2 \in \fT(\fu_2)} T^*_{\fp_1}g_1 \overline{T^*_{\fp_2}g_2 }\,\mathrm{d}\mu \right|
\le 2^{512a^3-4n} \prod_{j =1}^2 \| S_{2, \fu_j} g_j\|_{L^2(\scI(\fu_1) \cap \scI(\fu_2))}.
Lean code for Lemma1.98●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/Forests.leancomplete
theorem TileStructure.Forest.correlation_separated_trees.{u_1}
TileStructure.Forest.correlation_separated_trees.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {g₁ g₂ : X → ℂ} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (hg₁ : MeasureTheory.BoundedCompactSupport g₁ MeasureTheory.volume) (hg₂ : MeasureTheory.BoundedCompactSupport g₂ MeasureTheory.volume) : ‖∫ (x : X), adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₁) g₁ x * (starRingEnd ℂ) (adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂) g₂ x)‖ₑ ≤ ↑(TileStructure.Forest.C7_4_4 a n) * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁) ∩ ↑(𝓘 u₂)).indicator (t.adjointBoundaryOperator u₁ g₁) x) 2 MeasureTheory.volume * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁) ∩ ↑(𝓘 u₂)).indicator (t.adjointBoundaryOperator u₂ g₂) x) 2 MeasureTheory.volumeLemma 7.4.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {g₁X → ℂg₂X → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (hg₁MeasureTheory.BoundedCompactSupport g₁ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsg₁X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hg₂MeasureTheory.BoundedCompactSupport g₂ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsg₂X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraladjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X) g₁X → ℂxX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X) g₂X → ℂxX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_4_4TileStructure.Forest.C7_4_4 (a n : ℕ) : NNRealThe constant used in `correlation_separated_trees`. Has value `2 ^ (512 * a ^ 3 - 4 * n)` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X) ∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X))Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`..indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₁𝔓 Xg₁X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X) ∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X))Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`..indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₂𝔓 Xg₂X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.correlation_separated_trees.{u_1}
TileStructure.Forest.correlation_separated_trees.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {g₁ g₂ : X → ℂ} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (hg₁ : MeasureTheory.BoundedCompactSupport g₁ MeasureTheory.volume) (hg₂ : MeasureTheory.BoundedCompactSupport g₂ MeasureTheory.volume) : ‖∫ (x : X), adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₁) g₁ x * (starRingEnd ℂ) (adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂) g₂ x)‖ₑ ≤ ↑(TileStructure.Forest.C7_4_4 a n) * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁) ∩ ↑(𝓘 u₂)).indicator (t.adjointBoundaryOperator u₁ g₁) x) 2 MeasureTheory.volume * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁) ∩ ↑(𝓘 u₂)).indicator (t.adjointBoundaryOperator u₂ g₂) x) 2 MeasureTheory.volumeLemma 7.4.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {g₁X → ℂg₂X → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (hg₁MeasureTheory.BoundedCompactSupport g₁ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsg₁X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hg₂MeasureTheory.BoundedCompactSupport g₂ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsg₂X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraladjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X) g₁X → ℂxX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X) g₂X → ℂxX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_4_4TileStructure.Forest.C7_4_4 (a n : ℕ) : NNRealThe constant used in `correlation_separated_trees`. Has value `2 ^ (512 * a ^ 3 - 4 * n)` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X) ∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X))Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`..indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₁𝔓 Xg₁X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X) ∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X))Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`..indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₂𝔓 Xg₂X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Lemma 7.4.4
Proof of Lemma 1.98. By Lemma 1.95 and
dyadicproperty, the left hand side eq-lhs-sep-tree is 0 unless
\scI(\fu_1) \subset \scI(\fu_2) or
\scI(\fu_2) \subset \scI(\fu_1). Without loss of generality we assume that
\scI(\fu_1) \subset \scI(\fu_2).
Define
\mathfrak{S} := \{\fp \in \fT(\fu_1) \cup \fT(\fu_2) \ : \ d_{\fp}(\fcc(\fu_1), \fcc(\fu_2)) \ge 2^{Zn/2}\}.
Lemma 1.98 follows by combining the definition defineZ of
Z with the following two lemmas.
Uses Theorem 1.8, Lemma 1.103, Lemma 1.105, and Lemma 1.112.
We have for all \fu_1 \ne \fu_2 \in \fU with
\scI(\fu_1) \subset \scI(\fu_2) and all bounded g_1, g_2 with bounded
support
\left| \int_X \sum_{\fp_1 \in \fT(\fu_1)} \sum_{\fp_2 \in \fT(\fu_2) \cap \mathfrak{S}} T^*_{\fp_1}g_1 \overline{T^*_{\fp_2}g_2 }\,\mathrm{d}\mu \right|
\le 2^{511a^3} 2^{-Zn/(4a^2 + 2a^3)} \prod_{j =1}^2 \| S_{2, \fu_j} g_j\|_{L^2(\scI(\fu_1))}.
Lean code for Lemma1.99●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.correlation_distant_tree_parts.{u_1}
TileStructure.Forest.correlation_distant_tree_parts.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f₁ f₂ : X → ℂ} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hf₁ : MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume) (hf₂ : MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume) : ‖∫ (x : X), adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₁) f₁ x * (starRingEnd ℂ) (adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) f₂ x)‖ₑ ≤ ↑(TileStructure.Forest.C7_4_5 a n) * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁)).indicator (t.adjointBoundaryOperator u₁ f₁) x) 2 MeasureTheory.volume * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁)).indicator (t.adjointBoundaryOperator u₂ f₂) x) 2 MeasureTheory.volumeLemma 7.4.5{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {f₁X → ℂf₂X → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hf₁MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₁X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hf₂MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₂X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraladjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X) f₁X → ℂxX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.f₂X → ℂxX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_4_5TileStructure.Forest.C7_4_5 (a n : ℕ) : NNRealThe constant used in `correlation_distant_tree_parts`. Has value `2 ^ (511 * a ^ 3) * 2 ^ (-(Z n) / (4a^2 + 2a^3))` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₁𝔓 Xf₁X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₂𝔓 Xf₂X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.correlation_distant_tree_parts.{u_1}
TileStructure.Forest.correlation_distant_tree_parts.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f₁ f₂ : X → ℂ} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hf₁ : MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume) (hf₂ : MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume) : ‖∫ (x : X), adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₁) f₁ x * (starRingEnd ℂ) (adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) f₂ x)‖ₑ ≤ ↑(TileStructure.Forest.C7_4_5 a n) * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁)).indicator (t.adjointBoundaryOperator u₁ f₁) x) 2 MeasureTheory.volume * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁)).indicator (t.adjointBoundaryOperator u₂ f₂) x) 2 MeasureTheory.volumeLemma 7.4.5{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {f₁X → ℂf₂X → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hf₁MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₁X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hf₂MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₂X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraladjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X) f₁X → ℂxX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.f₂X → ℂxX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_4_5TileStructure.Forest.C7_4_5 (a n : ℕ) : NNRealThe constant used in `correlation_distant_tree_parts`. Has value `2 ^ (511 * a ^ 3) * 2 ^ (-(Z n) / (4a^2 + 2a^3))` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₁𝔓 Xf₁X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₂𝔓 Xf₂X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Lemma 7.4.5
Uses Lemma 1.88, Lemma 1.113, and Lemma 1.114.
We have for all \fu_1 \ne \fu_2 \in \fU with
\scI(\fu_1) \subset \scI(\fu_2) and all bounded g_1, g_2 with bounded
support
\left| \int_X \sum_{\fp_1 \in \fT(\fu_1)} \sum_{\fp_2 \in \fT(\fu_2) \setminus \mathfrak{S}} T^*_{\fp_1}g_1 \overline{T^*_{\fp_2}g_2 }\,\mathrm{d}\mu \right|
\le 2^{232a^3+21a+5} 2^{-\frac{25}{101a}Zn\kappa} \prod_{j=1}^2 \|S_{2, \fu_j} g_j\|_{L^2(\scI(\fu_1))}.
Lean code for Lemma1.100●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/RemainingTiles.leancomplete
theorem TileStructure.Forest.correlation_near_tree_parts.{u_1}
TileStructure.Forest.correlation_near_tree_parts.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f₁ f₂ : X → ℂ} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hf₁ : MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume) (hf₂ : MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume) : ‖∫ (x : X), adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₁) f₁ x * (starRingEnd ℂ) (adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂) f₂ x)‖ₑ ≤ ↑(TileStructure.Forest.C7_4_6 a n) * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁)).indicator (t.adjointBoundaryOperator u₁ f₁) x) 2 MeasureTheory.volume * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁)).indicator (t.adjointBoundaryOperator u₂ f₂) x) 2 MeasureTheory.volumeLemma 7.4.6{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {f₁X → ℂf₂X → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hf₁MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₁X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hf₂MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₂X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraladjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X) f₁X → ℂxX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.f₂X → ℂxX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_4_6TileStructure.Forest.C7_4_6 (a n : ℕ) : NNRealThe constant used in `correlation_near_tree_parts`. Has value `2 ^ (232 * a ^ 3 + 21 * a + 5- 25/(101a) * Z n κ)` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₁𝔓 Xf₁X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₂𝔓 Xf₂X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.correlation_near_tree_parts.{u_1}
TileStructure.Forest.correlation_near_tree_parts.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f₁ f₂ : X → ℂ} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hf₁ : MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume) (hf₂ : MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume) : ‖∫ (x : X), adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₁) f₁ x * (starRingEnd ℂ) (adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂) f₂ x)‖ₑ ≤ ↑(TileStructure.Forest.C7_4_6 a n) * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁)).indicator (t.adjointBoundaryOperator u₁ f₁) x) 2 MeasureTheory.volume * MeasureTheory.eLpNorm (fun x ↦ (↑(𝓘 u₁)).indicator (t.adjointBoundaryOperator u₂ f₂) x) 2 MeasureTheory.volumeLemma 7.4.6{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {f₁X → ℂf₂X → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hf₁MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₁X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hf₂MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₂X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraladjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X) f₁X → ℂxX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.f₂X → ℂxX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_4_6TileStructure.Forest.C7_4_6 (a n : ℕ) : NNRealThe constant used in `correlation_near_tree_parts`. Has value `2 ^ (232 * a ^ 3 + 21 * a + 5- 25/(101a) * Z n κ)` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₁𝔓 Xf₁X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(fun xX↦ (↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointBoundaryOperatorTileStructure.Forest.adjointBoundaryOperator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u : 𝔓 X) (f : X → ℂ) (x : X) : ENNRealThe operator `S_{2,𝔲} f(x)`, given above Lemma 7.4.3.u₂𝔓 Xf₂X → ℂ) xX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Lemma 7.4.6
In the proofs of both lemmas, we will need the following observation.
-
TileStructure.Forest.𝔗_subset_𝔖₀[complete] -
TileStructure.Forest.overlap_implies_distance[complete]
Let \fu_1 \ne \fu_2 \in \fU with \scI(\fu_1) \subset \scI(\fu_2). If
\fp \in \fT(\fu_1) \cup \fT(\fu_2) with
\scI(\fp) \cap \scI(\fu_1) \ne \emptyset, then \fp \in \mathfrak{S}. In
particular, we have \fT(\fu_1) \subset \mathfrak{S}.
Lean code for Lemma1.101●2 theorems
Associated Lean declarations
-
TileStructure.Forest.𝔗_subset_𝔖₀[complete]
-
TileStructure.Forest.overlap_implies_distance[complete]
-
TileStructure.Forest.𝔗_subset_𝔖₀[complete] -
TileStructure.Forest.overlap_implies_distance[complete]
-
theoremdefined in Carleson/ForestOperator/AlmostOrthogonality.leancomplete
theorem TileStructure.Forest.𝔗_subset_𝔖₀.{u_1}
TileStructure.Forest.𝔗_subset_𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) : (fun x ↦ t.𝔗 x) u₁ ⊆ t.𝔖₀ u₁ u₂Part 2 of Lemma 7.4.7.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) : (fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 Xtheorem TileStructure.Forest.𝔗_subset_𝔖₀.{u_1}
TileStructure.Forest.𝔗_subset_𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) : (fun x ↦ t.𝔗 x) u₁ ⊆ t.𝔖₀ u₁ u₂Part 2 of Lemma 7.4.7.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) : (fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 XPart 2 of Lemma 7.4.7.
-
theoremdefined in Carleson/ForestOperator/AlmostOrthogonality.leancomplete
theorem TileStructure.Forest.overlap_implies_distance.{u_1}
TileStructure.Forest.overlap_implies_distance.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ p : 𝔓 X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hp : p ∈ (fun x ↦ t.𝔗 x) u₁ ∪ (fun x ↦ t.𝔗 x) u₂) (hpu₁ : ¬Disjoint ↑(𝓘 p) ↑(𝓘 u₁)) : p ∈ t.𝔖₀ u₁ u₂Part 1 of Lemma 7.4.7.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hpp ∈ (fun x ↦ t.𝔗 x) u₁ ∪ (fun x ↦ t.𝔗 x) u₂: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X∪Union.union.{u} {α : Type u} [self : Union α] : α → α → α`a ∪ b` is the union of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∪` in identifiers is `union`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X) (hpu₁¬Disjoint ↑(𝓘 p) ↑(𝓘 u₁): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X) ↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)) : p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 Xtheorem TileStructure.Forest.overlap_implies_distance.{u_1}
TileStructure.Forest.overlap_implies_distance.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ p : 𝔓 X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hp : p ∈ (fun x ↦ t.𝔗 x) u₁ ∪ (fun x ↦ t.𝔗 x) u₂) (hpu₁ : ¬Disjoint ↑(𝓘 p) ↑(𝓘 u₁)) : p ∈ t.𝔖₀ u₁ u₂Part 1 of Lemma 7.4.7.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hpp ∈ (fun x ↦ t.𝔗 x) u₁ ∪ (fun x ↦ t.𝔗 x) u₂: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X∪Union.union.{u} {α : Type u} [self : Union α] : α → α → α`a ∪ b` is the union of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∪` in identifiers is `union`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X) (hpu₁¬Disjoint ↑(𝓘 p) ↑(𝓘 u₁): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xp𝔓 X) ↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)) : p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 XPart 1 of Lemma 7.4.7.
Proof. Suppose first that \fp \in \fT(\fu_1). Then
\scI(\fp) \subset \scI(\fu_1) \subset \scI(\fu_2), by forest1. Thus we
have by the separation condition forest5, eq-freq-comp-ball, forest1
and the triangle inequality
d_{\fp}(\fcc(\fu_1), \fcc(\fu_2)) \ge d_{\fp}(\fcc(\fp), \fcc(\fu_2)) - d_{\fp}(\fcc(\fp), \fcc(\fu_1))
\ge 2^{Z(n+1)} - 4
\ge 2^{Zn/2},
using that Z= 2^{12a}\ge 4. Hence \fp \in \mathfrak{S}.
Suppose now that \fp \in \fT(\fu_2). If
\scI(\fp) \subset \scI(\fu_1), then the same argument as above with
\fu_1 and \fu_2 swapped shows \fp \in \mathfrak{S}. If
\scI(\fp) \not \subset \scI(\fu_1) then, by dyadicproperty,
\scI(\fu_1) \subset \scI(\fp). Pick \fp' \in \fT(\fu_1), we have
\scI(\fp') \subset \scI(\fu_1) \subset \scI(\fp). Hence, by
Lemma 1.11 and the first paragraph
d_{\fp}(\fcc(\fu_1), \fcc(\fu_2)) \ge d_{\fp'}(\fcc(\fu_1), \fcc(\fu_2)) \ge 2^{Zn},
so \fp \in \mathfrak{S}.
To simplify the notation, we will write at various places throughout the proof
of Lemmas Lemma 1.99 and
Lemma 1.100 for a subset \fC \subset \fP
T_{\fC} f := \sum_{\fp \in \fC} T_{\fp} f\,, \quad\quad T_{\fC}^* g := \sum_{\fp\in\fC} T_{\fp}^* g\,.
1.5.15. Proof of the Tiles with large separation Lemma
Lemma 1.99 follows from the van der Corput estimate in Theorem 1.8. We apply this proposition in [??]. To prepare this application, we first, in [??], construct a suitable partition of unity, and show then, in [??] the Holder estimates needed to apply Theorem 1.8.
1.5.15.1. A partition of unity
Define
\mathcal{J}' = \{J \in \mathcal{J}(\mathfrak{S}) \ : \ J \subset \scI(\fu_1)\}.
-
TileStructure.Forest.union_𝓙₅[complete] -
TileStructure.Forest.pairwiseDisjoint_𝓙₅[complete]
Uses Lemma 1.83.
We have that
\scI(\fu_1) = \dot{\bigcup_{J \in \mathcal{J}'}} J.
Lean code for Lemma1.102●2 theorems
Associated Lean declarations
-
TileStructure.Forest.union_𝓙₅[complete]
-
TileStructure.Forest.pairwiseDisjoint_𝓙₅[complete]
-
TileStructure.Forest.union_𝓙₅[complete] -
TileStructure.Forest.pairwiseDisjoint_𝓙₅[complete]
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.union_𝓙₅.{u_1}
TileStructure.Forest.union_𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) : ⋃ J ∈ t.𝓙₅ u₁ u₂, ↑J = ↑(𝓘 u₁)Part of Lemma 7.5.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) : ⋃ JGrid X∈ tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X, ↑JGrid X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)theorem TileStructure.Forest.union_𝓙₅.{u_1}
TileStructure.Forest.union_𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) : ⋃ J ∈ t.𝓙₅ u₁ u₂, ↑J = ↑(𝓘 u₁)Part of Lemma 7.5.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) : ⋃ JGrid X∈ tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X, ↑JGrid X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)Part of Lemma 7.5.1.
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.pairwiseDisjoint_𝓙₅.{u_1}
TileStructure.Forest.pairwiseDisjoint_𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} : (t.𝓙₅ u₁ u₂).PairwiseDisjoint fun I ↦ ↑IPart of Lemma 7.5.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} : (tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.fun IGrid X↦ ↑IGrid Xtheorem TileStructure.Forest.pairwiseDisjoint_𝓙₅.{u_1}
TileStructure.Forest.pairwiseDisjoint_𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} : (t.𝓙₅ u₁ u₂).PairwiseDisjoint fun I ↦ ↑IPart of Lemma 7.5.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} : (tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.fun IGrid X↦ ↑IGrid XPart of Lemma 7.5.1.
Proof. By Lemma 1.83, it remains only to show that each
J \in \mathcal{J}(\mathfrak{S}) with
J \cap \scI(\fu_1) \ne \emptyset is in \mathcal{J}'. But if
J \notin \mathcal{J}', then by dyadicproperty
\scI(\fu_1) \subset J. Pick \fp \in \fT(\fu_1) \subset \mathfrak{S}.
Then \scI(\fp) \subset J. This contradicts the definition of
\mathcal{J}(\mathfrak{S}).
For cubes J \in \mathcal{D}, denote
B(J) := B(c(J), 8D^{s(J)}).
The main result of this subsubsection is the following.
-
TileStructure.Forest.sum_χ[complete] -
TileStructure.Forest.χ_le_indicator[complete] -
TileStructure.Forest.dist_χ_le[complete]
Uses Lemma 1.102 and Lemma 1.104.
There exists a family of functions \chi_J, J \in \mathcal{J}' such that
\mathbf{1}_{\scI(\fu_1)} = \sum_{J \in \mathcal{J}'} \chi_J,
and for all J \in \mathcal{J}' and all y,y' \in \scI(\fu_1)
0 \leq \chi_J(y) \leq \mathbf{1}_{B(J)}(y),
|\chi_J(y) - \chi_J(y')| \le 2^{227a^3} \frac{\rho(y,y')}{D^{s(J)}}.
Lean code for Lemma1.103●3 theorems
Associated Lean declarations
-
TileStructure.Forest.sum_χ[complete]
-
TileStructure.Forest.χ_le_indicator[complete]
-
TileStructure.Forest.dist_χ_le[complete]
-
TileStructure.Forest.sum_χ[complete] -
TileStructure.Forest.χ_le_indicator[complete] -
TileStructure.Forest.dist_χ_le[complete]
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.sum_χ.{u_1}
TileStructure.Forest.sum_χ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (x : X) : ∑ J ∈ (t.𝓙₅ u₁ u₂).toFinset, t.χ u₁ u₂ J x = (↑(𝓘 u₁)).indicator 1 xPart of Lemma 7.5.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (xX: XType u_1) : ∑ JGrid X∈ (tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X).toFinsetSet.toFinset.{u_1} {α : Type u_1} (s : Set α) [Fintype ↑s] : Finset αConstruct a finset enumerating a set `s`, given a `Fintype` instance., tTileStructure.Forest X n.χTileStructure.Forest.χ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (J : Grid X) (x : X) : NNRealThe definition of χ, defined in the proof of Lemma 7.5.2u₁𝔓 Xu₂𝔓 XJGrid XxX=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.(↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xXtheorem TileStructure.Forest.sum_χ.{u_1}
TileStructure.Forest.sum_χ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (x : X) : ∑ J ∈ (t.𝓙₅ u₁ u₂).toFinset, t.χ u₁ u₂ J x = (↑(𝓘 u₁)).indicator 1 xPart of Lemma 7.5.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (xX: XType u_1) : ∑ JGrid X∈ (tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X).toFinsetSet.toFinset.{u_1} {α : Type u_1} (s : Set α) [Fintype ↑s] : Finset αConstruct a finset enumerating a set `s`, given a `Fintype` instance., tTileStructure.Forest X n.χTileStructure.Forest.χ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (J : Grid X) (x : X) : NNRealThe definition of χ, defined in the proof of Lemma 7.5.2u₁𝔓 Xu₂𝔓 XJGrid XxX=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.(↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xXPart of Lemma 7.5.2.
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.χ_le_indicator.{u_1}
TileStructure.Forest.χ_le_indicator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {x : X} {J : Grid X} (hJ : J ∈ t.𝓙₅ u₁ u₂) : t.χ u₁ u₂ J x ≤ (Metric.ball (c J) (8 * ↑(defaultD a) ^ s J)).indicator 1 xPart of Lemma 7.5.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xX: XType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) : tTileStructure.Forest X n.χTileStructure.Forest.χ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (J : Grid X) (x : X) : NNRealThe definition of χ, defined in the proof of Lemma 7.5.2u₁𝔓 Xu₂𝔓 XJGrid XxX≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xXtheorem TileStructure.Forest.χ_le_indicator.{u_1}
TileStructure.Forest.χ_le_indicator.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {x : X} {J : Grid X} (hJ : J ∈ t.𝓙₅ u₁ u₂) : t.χ u₁ u₂ J x ≤ (Metric.ball (c J) (8 * ↑(defaultD a) ^ s J)).indicator 1 xPart of Lemma 7.5.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xX: XType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) : tTileStructure.Forest X n.χTileStructure.Forest.χ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (J : Grid X) (x : X) : NNRealThe definition of χ, defined in the proof of Lemma 7.5.2u₁𝔓 Xu₂𝔓 XJGrid XxX≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xXPart of Lemma 7.5.2.
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.dist_χ_le.{u_1}
TileStructure.Forest.dist_χ_le.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {x x' : X} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (mx : x ∈ 𝓘 u₁) (mx' : x' ∈ 𝓘 u₁) : dist (t.χ u₁ u₂ J x) (t.χ u₁ u₂ J x') ≤ ↑(TileStructure.Forest.C7_5_2 a) * dist x x' / ↑(defaultD a) ^ s JPart of Lemma 7.5.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (mxx ∈ 𝓘 u₁: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X) (mx'x' ∈ 𝓘 u₁: x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X) : distDist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points(tTileStructure.Forest X n.χTileStructure.Forest.χ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (J : Grid X) (x : X) : NNRealThe definition of χ, defined in the proof of Lemma 7.5.2u₁𝔓 Xu₂𝔓 XJGrid XxX) (tTileStructure.Forest X n.χTileStructure.Forest.χ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (J : Grid X) (x : X) : NNRealThe definition of χ, defined in the proof of Lemma 7.5.2u₁𝔓 Xu₂𝔓 XJGrid Xx'X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_2TileStructure.Forest.C7_5_2 (a : ℕ) : NNRealThe constant used in `dist_χ_le`. Has value `2 ^ (227 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.distDist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two pointsxXx'X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid Xtheorem TileStructure.Forest.dist_χ_le.{u_1}
TileStructure.Forest.dist_χ_le.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {x x' : X} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (mx : x ∈ 𝓘 u₁) (mx' : x' ∈ 𝓘 u₁) : dist (t.χ u₁ u₂ J x) (t.χ u₁ u₂ J x') ≤ ↑(TileStructure.Forest.C7_5_2 a) * dist x x' / ↑(defaultD a) ^ s JPart of Lemma 7.5.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (mxx ∈ 𝓘 u₁: xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X) (mx'x' ∈ 𝓘 u₁: x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X) : distDist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points(tTileStructure.Forest X n.χTileStructure.Forest.χ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (J : Grid X) (x : X) : NNRealThe definition of χ, defined in the proof of Lemma 7.5.2u₁𝔓 Xu₂𝔓 XJGrid XxX) (tTileStructure.Forest X n.χTileStructure.Forest.χ.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (J : Grid X) (x : X) : NNRealThe definition of χ, defined in the proof of Lemma 7.5.2u₁𝔓 Xu₂𝔓 XJGrid Xx'X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_2TileStructure.Forest.C7_5_2 (a : ℕ) : NNRealThe constant used in `dist_χ_le`. Has value `2 ^ (227 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.distDist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two pointsxXx'X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid XPart of Lemma 7.5.2.
In the proof, we will use the following auxiliary lemma.
If J, J' \in \mathcal{J'} with
B(J) \cap B(J') \ne \emptyset,
then |s(J) - s(J')| \le 1.
Lean code for Lemma1.104●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.moderate_scale_change.{u_1}
TileStructure.Forest.moderate_scale_change.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {J J' : Grid X} (hJ : J ∈ t.𝓙₅ u₁ u₂) (hJ' : J' ∈ t.𝓙₅ u₁ u₂) (hd : ¬Disjoint (Metric.ball (c J) (8 * ↑(defaultD a) ^ s J)) (Metric.ball (c J') (8 * ↑(defaultD a) ^ s J'))) : s J - 1 ≤ s J'Lemma 7.5.3 (stated somewhat differently).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid XJ'Grid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hJ'J' ∈ t.𝓙₅ u₁ u₂: J'Grid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hd¬Disjoint (Metric.ball (c J) (8 * ↑(defaultD a) ^ s J)) (Metric.ball (c J') (8 * ↑(defaultD a) ^ s J')): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJ'Grid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJ'Grid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.)) : ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).1 ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJ'Grid Xtheorem TileStructure.Forest.moderate_scale_change.{u_1}
TileStructure.Forest.moderate_scale_change.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {J J' : Grid X} (hJ : J ∈ t.𝓙₅ u₁ u₂) (hJ' : J' ∈ t.𝓙₅ u₁ u₂) (hd : ¬Disjoint (Metric.ball (c J) (8 * ↑(defaultD a) ^ s J)) (Metric.ball (c J') (8 * ↑(defaultD a) ^ s J'))) : s J - 1 ≤ s J'Lemma 7.5.3 (stated somewhat differently).{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid XJ'Grid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hJ'J' ∈ t.𝓙₅ u₁ u₂: J'Grid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hd¬Disjoint (Metric.ball (c J) (8 * ↑(defaultD a) ^ s J)) (Metric.ball (c J') (8 * ↑(defaultD a) ^ s J')): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJ'Grid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJ'Grid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.)) : ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).1 ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJ'Grid XLemma 7.5.3 (stated somewhat differently).
Proof of Lemma 1.103. For each cube J \in \mathcal{J} let
\tilde\chi_J(y) = \mathbf{1}_{\scI(\fu_1)}(y)\max\{0, 8 - D^{-s(J)} \rho(y, c(J))\},
and set
a(y) = \sum_{J \in \mathcal{J}'} \tilde \chi_J(y).
We define
\chi_J(y) := \frac{\tilde \chi_J(y)}{a(y)}.
Then, due to forest6 and def-BJ, the properties eq-pao-1 and
eq-pao-2 are clearly true. Estimate eq-pao-3 follows from eq-pao-2 if
y, y' \notin B(J). Thus we can assume that y \in B(J). We have by the
triangle inequality
|\chi_J(y) - \chi_J(y')| \le \frac{|\tilde \chi_J(y) - \tilde \chi_J(y')|}{a(y)} + \frac{\tilde \chi_J(y')|a(y) - a(y')|}{a(y)a(y')}
Since \tilde \chi_J(z) \ge 4 for all
z \in B(c(J),4D^{s(J)}) \supset J and by Lemma 1.102, we have
that a(z) \ge 4 for all z \in \scI(\fu_1). So we can estimate the above
further by
\le 2^{-2}(|\tilde \chi_J(y) - \tilde \chi_J(y')| + \tilde \chi_J(y')|a(y) - a(y')|).
If y' \notin B(\pc(\fp), 8D^{\ps(\fp)}) then the second summand vanishes.
Else, we can estimate the above, using also that
|\tilde \chi_J(y')| \le 8, by
\le 2^{-2} |\tilde \chi_J(y) - \tilde \chi_J(y')| + 2 \sum_{\substack{J' \in \mathcal{J}'\\ B(J') \cap B(J) \ne \emptyset}}|\tilde \chi_{J'}(y) - \tilde \chi_{J'} (y')|.
By the triangle inequality, we have for all dyadic cubes I
|\tilde \chi_I(y) - \tilde \chi_I(y')| \le \rho(y, y') D^{-s(I)}.
Using this above, we obtain
|\chi_J(y) - \chi_J(y')| \le \rho(y,y') \Big( \frac{1}{4} D^{-s(J)} + 2 \sum_{\substack{J' \in \mathcal{J}'\\ B(J') \cap B(J) \ne \emptyset}} D^{-s(J')}\Big).
By Lemma 1.104, this is at most
\frac{\rho(y,y')}{D^{s(J)}} \left( \frac{1}{4} + 2D |\{J' \in \mathcal{J}' \ : \ B(J') \cap B(J) \ne \emptyset\}|\right).
By eq-vol-sp-cube and Lemma 1.102, the balls
B(c(J'), \frac{1}{4} D^{s(J')}) are pairwise disjoint. By the triangle
inequality and Lemma 1.104, each such ball for J' in the set of
the last display is contained in
B(c(J), 9 D^{s(J) + 1}).
By the doubling property doublingx, we further have
\mu(B(c(J), 9 D^{s(J) + 1})) \le 2^{200a^3 + 7a} \mu\Big(B(c(J'), \frac{1}{4}D^{s(J')})\Big)
for each such ball. Thus
|\{J' \in \mathcal{J}' \ : \ B(J') \cap B(J) \ne \emptyset\}| \le 2^{200a^3 + 7a}.
Recalling that D=2^{100a^2}, we obtain
\frac{1}{4} + 2D |\{J' \in \mathcal{J}' \ : \ B(J') \cap B(J) \ne \emptyset\}|\leq 2^{200a^3 + 100a^2 + 7a + 2}.
Since a\ge 4, eq-pao-3 follows.
Proof of Lemma 1.104. Suppose that s(J') < s(J) - 1. Then
s(J) > -S. Thus, by the definition of \mathcal{J}' there exists no
\fp \in \mathfrak{S} with
\scI(\fp) \subset B(c(J), 100D^{s(J) + 1}).
Since s(J') < s(J), there exists a cube J'' \in \mathcal{D} with
J \subset J'' and s(J'') = s(J') + 1. By the definition of
\mathcal{J}', there exists a tile \fp \in \mathfrak{S} with
\scI(\fp) \subset B(c(J''), 100 D^{s(J')+2}).
But by the triangle inequality and defineD, we have
B(c(J''), 100 D^{s(J')+2}) \subset B(c(J), 100D^{s(J) + 1}),
which contradicts eq-tile-incl-1 and tile-incl-2.
1.5.15.2. Holder estimates for adjoint tree operators
Let g_1, g_2:X \to \mathbb{C} be bounded with bounded support. Define for
J \in \mathcal{J}'
h_J(y) := \chi_J(y)\cdot(e(\fcc(\fu_1)(y)) T_{\fT(\fu_1)}^* g_1(y)) \cdot \overline{(e(\fcc(\fu_2)(y)) T_{\fT(\fu_2) \cap \mathfrak{S}}^* g_2(y))}.
The main result of this subsubsection is the following \tau-Holder estimate
for h_J, where \tau = 1/a.
Uses Lemma 1.111.
We have for all J \in \mathcal{J}' that
\|h_J\|_{C^{\tau}(B(c(J), 16D^{s(J)}))} \le 2^{485a^3} \prod_{j = 1,2} (\inf_{B(c(J), \frac{1}{8}D^{s(J)})} |T_{\fT(\fu_j)}^* g_j| + \inf_J M_{\mathcal{B}, 1} |g_j|).
Lean code for Lemma1.105●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.holder_correlation_tree.{u_1}
TileStructure.Forest.holder_correlation_tree.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f₁ f₂ : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf₁ : MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume) (hf₂ : MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume) : iHolENorm (t.holderFunction u₁ u₂ f₁ f₂ J) (c J) (16 * ↑(defaultD a) ^ s J) (defaultτ a) ≤ ↑(TileStructure.Forest.C7_5_4 a) * t.P7_5_4 u₁ u₂ f₁ f₂ JLemma 7.5.4.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {f₁X → ℂf₂X → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hf₁MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₁X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hf₂MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₂X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : iHolENormiHolENorm.{u_1, u_2} {𝕜 : Type u_1} {X : Type u_2} [PseudoMetricSpace X] [NormedField 𝕜] (φ : X → 𝕜) (x₀ : X) (R t : ℝ) : ENNRealthe L^∞-normalized t-Hölder norm. Defined in ℝ≥0∞ to avoid sup-related issues.(tTileStructure.Forest X n.holderFunctionTileStructure.Forest.holderFunction.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (f₁ f₂ : X → ℂ) (J : Grid X) (x : X) : ℂThe definition of h_J, defined in the proof of Section 7.5.2u₁𝔓 Xu₂𝔓 Xf₁X → ℂf₂X → ℂJGrid X) (cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(defaultτdefaultτ (a : ℕ) : ℝ`defaultτ` is the inverse of `a`.aℕ) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_4TileStructure.Forest.C7_5_4 (a : ℕ) : NNRealThe constant used in `holder_correlation_tree`. Has value `2 ^ (485 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.tTileStructure.Forest X n.P7_5_4TileStructure.Forest.P7_5_4.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (f₁ f₂ : X → ℂ) (J : Grid X) : ENNRealThe product on the right-hand side of Lemma 7.5.4.u₁𝔓 Xu₂𝔓 Xf₁X → ℂf₂X → ℂJGrid Xtheorem TileStructure.Forest.holder_correlation_tree.{u_1}
TileStructure.Forest.holder_correlation_tree.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f₁ f₂ : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf₁ : MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume) (hf₂ : MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume) : iHolENorm (t.holderFunction u₁ u₂ f₁ f₂ J) (c J) (16 * ↑(defaultD a) ^ s J) (defaultτ a) ≤ ↑(TileStructure.Forest.C7_5_4 a) * t.P7_5_4 u₁ u₂ f₁ f₂ JLemma 7.5.4.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {f₁X → ℂf₂X → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hf₁MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₁X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hf₂MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₂X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : iHolENormiHolENorm.{u_1, u_2} {𝕜 : Type u_1} {X : Type u_2} [PseudoMetricSpace X] [NormedField 𝕜] (φ : X → 𝕜) (x₀ : X) (R t : ℝ) : ENNRealthe L^∞-normalized t-Hölder norm. Defined in ℝ≥0∞ to avoid sup-related issues.(tTileStructure.Forest X n.holderFunctionTileStructure.Forest.holderFunction.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (f₁ f₂ : X → ℂ) (J : Grid X) (x : X) : ℂThe definition of h_J, defined in the proof of Section 7.5.2u₁𝔓 Xu₂𝔓 Xf₁X → ℂf₂X → ℂJGrid X) (cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(defaultτdefaultτ (a : ℕ) : ℝ`defaultτ` is the inverse of `a`.aℕ) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_4TileStructure.Forest.C7_5_4 (a : ℕ) : NNRealThe constant used in `holder_correlation_tree`. Has value `2 ^ (485 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.tTileStructure.Forest X n.P7_5_4TileStructure.Forest.P7_5_4.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) (f₁ f₂ : X → ℂ) (J : Grid X) : ENNRealThe product on the right-hand side of Lemma 7.5.4.u₁𝔓 Xu₂𝔓 Xf₁X → ℂf₂X → ℂJGrid XLemma 7.5.4.
We will prove this lemma at the end of this section, after establishing several auxiliary results.
We begin with the following Holder continuity estimate for adjoints of operators associated to tiles.
Uses Lemma 1.95.
Let \fu \in \fU and \fp \in \fT(\fu). Then for all y, y' \in X and
all bounded g with bounded support, we have
|e(\fcc(\fu)(y)) T_{\fp}^* g(y) - e(\fcc(\fu)(y')) T_{\fp}^* g(y')|
\le \frac{2^{128a^3}}{\mu(B(\pc(\fp), 4D^{\ps(\fp)}))} \left(\frac{\rho(y, y')}{D^{\ps(\fp)}}\right)^{1/a} \int_{E(\fp)} |g(x)| \, \mathrm{d}\mu(x).
Lean code for Lemma1.106●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.holder_correlation_tile.{u_1}
TileStructure.Forest.holder_correlation_tile.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u p : 𝔓 X} {x x' : X} {f : X → ℂ} (hu : u ∈ t) (hp : p ∈ (fun x ↦ t.𝔗 x) u) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : edist (Complex.exp (Complex.I * ↑((𝒬 u) x)) * adjointCarleson p f x) (Complex.exp (Complex.I * ↑((𝒬 u) x')) * adjointCarleson p f x') ≤ ↑(TileStructure.Forest.C7_5_5 a) / MeasureTheory.volume (Metric.ball (𝔠 p) (4 * ↑(defaultD a) ^ 𝔰 p)) * (edist x x' / ↑(defaultD a) ^ 𝔰 p) ^ (↑a)⁻¹ * ∫⁻ (x : X) in E p, ‖f x‖ₑLemma 7.5.5.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hpp ∈ (fun x ↦ t.𝔗 x) u: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) xX))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XfX → ℂxX)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) x'X))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XfX → ℂx'X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_5TileStructure.Forest.C7_5_5 (a : ℕ) : NNRealThe constant used in `holder_correlation_tile`. Has value `2 ^ (128 * a ^ 3)` in the blueprint.aℕ) /HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.4 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two pointsxXx'X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(↑aℕ)⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(xX: XType u_1) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.theorem TileStructure.Forest.holder_correlation_tile.{u_1}
TileStructure.Forest.holder_correlation_tile.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u p : 𝔓 X} {x x' : X} {f : X → ℂ} (hu : u ∈ t) (hp : p ∈ (fun x ↦ t.𝔗 x) u) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : edist (Complex.exp (Complex.I * ↑((𝒬 u) x)) * adjointCarleson p f x) (Complex.exp (Complex.I * ↑((𝒬 u) x')) * adjointCarleson p f x') ≤ ↑(TileStructure.Forest.C7_5_5 a) / MeasureTheory.volume (Metric.ball (𝔠 p) (4 * ↑(defaultD a) ^ 𝔰 p)) * (edist x x' / ↑(defaultD a) ^ 𝔰 p) ^ (↑a)⁻¹ * ∫⁻ (x : X) in E p, ‖f x‖ₑLemma 7.5.5.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (huu ∈ t: u𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hpp ∈ (fun x ↦ t.𝔗 x) u: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) xX))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XfX → ℂxX)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu𝔓 X) x'X))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonadjointCarleson.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) (f : X → ℂ) (x : X) : ℂThe definition of `Tₚ*g(x)`, defined above Lemma 7.4.1p𝔓 XfX → ℂx'X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_5TileStructure.Forest.C7_5_5 (a : ℕ) : NNRealThe constant used in `holder_correlation_tile`. Has value `2 ^ (128 * a ^ 3)` in the blueprint.aℕ) /HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.4 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two pointsxXx'X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(↑aℕ)⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(xX: XType u_1) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.EE.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (p : 𝔓 X) : Set XThe set `E` defined in Proposition 2.0.2.p𝔓 X,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.Lemma 7.5.5.
Proof. By definetp*, we have
|e(\fcc(\fu)(y)) T_{\fp}^* g(y) - e(\fcc(\fu)(y')) T_{\fp}^* g(y')|
=\bigg| \int_{E(\fp)} e(\tQ(x)(x) - \tQ(x)(y) + \fcc(\fu)(y)) \overline{K_{\ps(\fp)}(x, y)} g(x)
- e(\tQ(x)(x) - \tQ(x)(y') + \fcc(\fu)(y')) \overline{K_{\ps(\fp)}(x, y')} g(x) \, \mathrm{d}\mu(x)\bigg|
\leq\int_{E(\fp)} |g(x)| |e(\tQ(x)(y) - \tQ(x)(y') - \fcc(\fu)(y) + \fcc(\fu)(y'))\overline{K_{\ps(\fp)}(x, y)}
- \overline{K_{\ps(\fp)}(x, y')}| \, \mathrm{d}\mu(x)
\leq\int_{E(\fp)} |g(x)| |e(-\tQ(x)(y) + \tQ(x)(y') + \fcc(\fu)(y) - \fcc(\fu)(y')) - 1|
\times |\overline{K_{\ps(\fp)}(x, y)}|\, \mathrm{d}\mu(x)
+ \int_{E(\fp)} |g(x)| |\overline{K_{\ps(\fp)}(x, y)} - \overline{K_{\ps(\fp)}(x, y')} |\, \mathrm{d}\mu(x).
By the oscillation estimate osccontrol, we have
|-\tQ(x)(y) + \tQ(x)(y') + \fcc(\fu)(y) - \fcc(\fu)(y')|
\le d_{B(y, 1.6\rho(y,y'))}(\tQ(x), \fcc(\fu)).
Suppose that y, y' \in B(\pc(\fp), 5D^{\ps(\fp)}), so that
\rho(y,y') \le 10D^{\ps(\fp)}. Let k \in \mathbb{Z} be such that
2^{ak}\rho(y,y') \le 10D^{\ps(\fp)} but
2^{a(k+1)} \rho(y,y') > 10D^{\ps(\fp)}. In particular, k \ge 0. Then,
using seconddb followed by firstdb, we can bound
eq-lem-tile-Holder-comp from above by
2^{-k} d_{B(\pc(\fp), 16 D^{\ps(\fp)})}(\tQ(x), \fcc(\fu)) \le 2^{6a - k} d_{\fp}(\tQ(x), \fcc(\fu)).
Since x \in E(\fp) we have \tQ(x) \in \Omega(\fp) \subset B_{\fp}(\fcc(\fp), 1),
and since \fp \in \fT(\fu) we have
\fcc(\fu) \in B_{\fp}(\fcc(\fp), 4), so this is estimated by
\le 5 \cdot 2^{6a - k}.
By definition of k, we have
-k < 1 - \frac{1}{a} \log_2\left(\frac{10 D^{\ps(\fp)}}{\rho(y,y')}\right),
which gives
|-\tQ(x)(y) + \tQ(x)(y') + \fcc(\fu)(y) - \fcc(\fu)(y')| \le 10 \cdot 2^{6a} \left(\frac{\rho(y,y')}{10 D^{\ps(\fp)}}\right)^{1/a}.
For all x \in \scI(\fp), we have by doublingx that
\mu(B(x, D^{\ps(\fp)})) \ge 2^{-3a} \mu(B(\pc(\fp), 4D^{\ps(\fp)})).
Combining the above with eq-Ks-size, eq-Ks-smooth and
eq-lem-Tile-holder-im1, we obtain
that the sum of the terms in T*Holder1b and T*Holder1 is bounded by
\frac{2^{3a}}{\mu(B(\pc(\fp), 4D^{\ps(\fp)}))} \int_{E(\fp)}|g(x)| \, \mathrm{d}\mu(x) \times
(2^{102a^3} \cdot 10 \cdot 2^{6a} \left(\frac{\rho(y,y')}{ D^{\ps(\fp)}}\right)^{1/a} + 2^{127a^3} \left(\frac{\rho(y,y')}{D^{\ps(\fp)}}\right)^{1/a})
Since \rho(y,y') \le 10 D^{\ps(\fp)}, we conclude
that the sum of the terms in T*Holder1b and T*Holder1 is bounded by
\frac{2^{128a^3}}{\mu(B(\pc(\fp), 4D^{\ps(\fp)}))} \left(\frac{\rho(y,y')}{D^{\ps(\fp)}}\right)^{1/a} \int_{E(\fp)}|g(x)| \, \mathrm{d}\mu(x).
Next, if y,y' \notin B(\pc(\fp), 5D^{\ps(\fp)}), then
T_{\fp}^*g(y) = T_{\fp}^*g(y') = 0, by Lemma 1.95. Then
T*Holder2 holds.
Finally, if y \in B(\pc(\fp), 5D^{\ps(\fp)}) and
y' \notin B(\pc(\fp), 5D^{\ps(\fp)}), then
|e(\fcc(\fu)(y)) T_{\fp}^* g(y) - e(\fcc(\fu)(y')) T_{\fp}^* g(y')| = |T_{\fp}^* g(y)|
\le \int_{E(\fp)} |K_{\ps(\fp)}(x,y)| |g(x)| \, \mathrm{d}\mu(x).
By the same argument used to prove eq-Ks-aux, this is bounded by
\le 2^{102a^3} \int_{E(\fp)} \frac{1}{\mu(B(x, D^s))} \psi(D^{-s} \rho(x,y)) |g(x)| \, \mathrm{d}\mu(x).
It follows from the definition of \psi that
\psi(x) \le \max\{0, (2 - 4x)^{1/a}\}.
Now for all x\in E(\fp), it follows by the triangle inequality and
eq-vol-sp-cube that
2 - 4D^{-\ps(\fp)}\rho(x,y)\leq 2 - 4D^{-\ps(\fp)}\rho(y, \pc(\fp)) + 4 D^{-\ps(\fp)}\rho(x, \pc(\fp))
\leq 18 - 4 D^{-\ps(\fp)} \rho(y, \pc(\fp)) \leq 4 D^{-\ps(\fp)}\rho(y,y') - 2.
Combining the above with the previous estimate on \psi, we get
\psi(D^{-\ps(\fp)}\rho(x,y)) \le 4 (D^{-\ps(\fp)}\rho(y,y'))^{1/a}.
Further, we obtain from the doubling property doublingx and
eq-vol-sp-cube that
\mu(B(x, D^{\ps(\fp)})) \ge 2^{-3a} \mu(B(\pc(\fp), 4D^{\ps(\fp)})).
Plugging this into eq-lem-Tile-holder-im2 and using a \ge 4, we get
|T_{\fp}^* g(y)| \le \frac{2^{103a^3}}{\mu(B(\pc(\fp), 4D^{\ps(\fp)}))} \left(\frac{\rho(y,y')}{D^{\ps(\fp)}}\right)^{1/a} \int_{E(\fp)} |g(x)| \, \mathrm{d}\mu(y),
which completes the proof of the lemma.
Recall that
B(J) := B(c(J), 8D^{s(J)}).
We also denote
B'(J) := B(c(J), 16D^{s(J)}),
B^\circ{}(J) := B(c(J), \frac{1}{8}D^{s(J)}).
Uses Lemma 1.101.
Let \fp \in \fT(\fu_2) \setminus \mathfrak{S}, J \in \mathcal{J}' and
suppose that
B(\scI(\fp)) \cap B^\circ(J) \ne \emptyset.
Then
s(J) \le \ps(\fp) \le s(J) +3.
Lean code for Lemma1.107●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.limited_scale_impact.{u_1}
TileStructure.Forest.limited_scale_impact.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ p : 𝔓 X} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hp : p ∈ (fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (h : ¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (8⁻¹ * ↑(defaultD a) ^ s J))) : 𝔰 p ∈ Set.Icc (s J) (s J + 3)Lemma 7.5.6.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hpp ∈ (fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (h¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (8⁻¹ * ↑(defaultD a) ^ s J)): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.)) : 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Set.IccSet.Icc.{u_1} {α : Type u_1} [Preorder α] (a b : α) : Set α`Icc a b` is the left-closed right-closed interval $[a, b]$.(ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X) (HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.theorem TileStructure.Forest.limited_scale_impact.{u_1}
TileStructure.Forest.limited_scale_impact.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ p : 𝔓 X} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hp : p ∈ (fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (h : ¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (8⁻¹ * ↑(defaultD a) ^ s J))) : 𝔰 p ∈ Set.Icc (s J) (s J + 3)Lemma 7.5.6.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hpp ∈ (fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (h¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (8⁻¹ * ↑(defaultD a) ^ s J)): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.)) : 𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Set.IccSet.Icc.{u_1} {α : Type u_1} [Preorder α] (a b : α) : Set α`Icc a b` is the left-closed right-closed interval $[a, b]$.(ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X) (HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X+HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.3)HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.Lemma 7.5.6.
Proof. For the first estimate, assume that \ps(\fp) < s(J), then in
particular \ps(\fp) \le \ps(\fu_1). Since \fp \notin \mathfrak{S}, we
have by Lemma 1.101 that
\scI(\fp) \cap \scI(\fu_1) = \emptyset. Since
B\Big(c(J), \frac{1}{4} D^{s(J)}\Big) \subset \scI(J) \subset \scI(\fu_1),
this implies
\rho(c(J), \pc(\fp)) \ge \frac{1}{4}D^{s(J)}.
On the other hand
\rho(c(J), \pc(\fp)) \le \frac{1}{8} D^{s(J)} + 8 D^{\ps(\fp)},
by our assumption. Thus D^{\ps(\fp)} \ge 64^{-1} D^{s(J)}, which
contradicts defineD and a \ge 4.
For the second estimate, assume that \ps(\fp) > s(J) + 3. Since
J \in \mathcal{J}', we have J \subsetneq \scI(\fu_1). Thus there exists
J' \in \mathcal{D} with J \subset J' and s(J') = s(J) + 1, by
coverdyadic and dyadicproperty. By definition of \mathcal{J}', there
exists some \fp' \in \mathfrak{S} such that
\scI(\fp') \subset B(c(J'), 100 D^{s(J) + 2}). On the other hand, since
B(\scI(\fp)) \cap B^\circ(J) \ne \emptyset, by the triangle inequality it
holds that
B(c(J'), 100 D^{s(J) + 3}) \subset B(\pc(\fp), 10 D^{\ps(\fp)}).
Using the definition of \mathfrak{S}, we have
2^{Zn/2} \le d_{\fp'}(\fcc(\fu_1), \fcc(\fu_2)) \le d_{B(c(J'), 100 D^{s(J) + 2})}(\fcc(\fu_1), \fcc(\fu_2)).
By seconddb, this is
\le 2^{-100a} d_{B(c(J'), 100 D^{s(J) + 3})}(\fcc(\fu_1), \fcc(\fu_2))
\le 2^{-100a} d_{B(\pc(\fp), 10 D^{\ps(\fp)})}(\fcc(\fu_1), \fcc(\fu_2)),
and by firstdb and the definition of \mathfrak{S}
\le 2^{-94a} d_{\fp}(\fcc(\fu_1), \fcc(\fu_2)) \le 2^{-94a} 2^{Zn/2}.
This is a contradiction, the second estimate follows.
-
TileStructure.Forest.local_tree_control[complete]
Uses Lemma 1.107.
For all J \in \mathcal{J}' and all bounded g with bounded support
\sup_{B^\circ{}(J)} |T_{\mathfrak{T}(\mathfrak{u}_2)\setminus\mathfrak{S}}^* g| \le 2^{104a^3} \inf_J M_{\mathcal{B},1}|g|
Lean code for Lemma1.108●1 theorem
Associated Lean declarations
-
TileStructure.Forest.local_tree_control[complete]
-
TileStructure.Forest.local_tree_control[complete]
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.local_tree_control.{u_1}
TileStructure.Forest.local_tree_control.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ⨆ x ∈ Metric.ball (c J) (8⁻¹ * ↑(defaultD a) ^ s J), ‖adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂) f x‖ₑ ≤ ↑(TileStructure.Forest.C7_5_7 a) * ⨅ x ∈ J, MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f xLemma 7.5.7.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ⨆ xX∈ Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`., ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_7TileStructure.Forest.C7_5_7 (a : ℕ) : NNRealThe constant used in `local_tree_control`. Has value `2 ^ (104 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⨅ xX∈ JGrid X, MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxXtheorem TileStructure.Forest.local_tree_control.{u_1}
TileStructure.Forest.local_tree_control.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ⨆ x ∈ Metric.ball (c J) (8⁻¹ * ↑(defaultD a) ^ s J), ‖adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂) f x‖ₑ ≤ ↑(TileStructure.Forest.C7_5_7 a) * ⨅ x ∈ J, MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f xLemma 7.5.7.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ⨆ xX∈ Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`., ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_7TileStructure.Forest.C7_5_7 (a : ℕ) : NNRealThe constant used in `local_tree_control`. Has value `2 ^ (104 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⨅ xX∈ JGrid X, MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxXLemma 7.5.7.
Proof. By the triangle inequality and since
T_{\fp}^* g = \mathbf{1}_{B(\pc(\fp), 5D^{\ps(\fp)})} T_{\fp}^* g, we have
\sup_{B^\circ{}(J)} |T_{\fT(\fu_2) \setminus\mathfrak{S}}^* g|
\leq \sup_{B^\circ{}(J)} \sum_{\substack{\fp \in \fT(\fu_2) \setminus \mathfrak{S}\\ B(\scI(\fp)) \cap B^\circ(J) \ne \emptyset}} |T_{\fp}^*g|.
By Lemma 1.107, this is at most
\sum_{s = s(J)}^{s(J) + 3} \sum_{\substack{\fp \in \fP, \ps(\fp) = s\\ B(\scI(\fp)) \cap B^\circ(J) \ne \emptyset}} \sup_{B^\circ{}(J)} |T_{\fp}^* g|.
If x \in E(\fp) and B(\scI(\fp)) \cap B^\circ(J) \ne \emptyset, then
B(c(J), 16D^{\ps(\fp)}) \subset B(x, 32 D^{\ps(\fp)}),
by eq-vol-sp-cube and the triangle inequality. Using the doubling property
doublingx, it follows that
\mu(B(x, D^{\ps(\fp)})) \ge 2^{-5a} \mu(B(c(J), 16D^{\ps(\fp)})).
Using definetp*, eq-Ks-size and that a \ge 4, we bound
eq-sep-tree-aux-3 by
2^{103a^3}\sum_{s = s(J)}^{s(J) + 3} \sum_{\substack{\fp \in \fP, \ps(\fp) = s\\B(\scI(\fp)) \cap B^\circ(J) \ne \emptyset}} \frac{1}{\mu(B(c(J), 16 D^s)} \int_{E(\fp)} |g| \, \mathrm{d}\mu.
For each I \in \mathcal{D}, the sets E(\fp) for \fp \in \fP with
\scI(\fp) = I are pairwise disjoint by defineep and
eq-dis-freq-cover. Further, if
B(\scI(\fp)) \cap B^\circ(J) \ne \emptyset and \ps(\fp) \ge s(J), then
E(\fp) \subset B(c(J), 16 D^{\ps(\fp)}). Thus the last display is bounded
by
2^{103a^3}\sum_{s = s(J)}^{s(J) + 3} \frac{1}{\mu(B(c(J), 16 D^s))} \int_{B(c(J), 16 D^s)} |g| \, \mathrm{d}\mu.
\le \inf_{x' \in J} 2^{103a^3 +2} M_{\mathcal{B}, 1} |g|.
The lemma follows since a \ge 4.
Uses Lemma 1.101.
Let \fC = \fT(\fu_1) or \fC = \fT(\fu_2) \cap \mathfrak{S}. Then for
each J \in \mathcal{J}' and \fp \in \fC with
B(\scI(\fp)) \cap B'(J) \neq \emptyset, we have \ps(\fp) \ge s(J).
Lean code for Lemma1.109●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.scales_impacting_interval.{u_1}
TileStructure.Forest.scales_impacting_interval.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ p : 𝔓 X} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hp : p ∈ (fun x ↦ t.𝔗 x) u₁ ∪ (fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) (h : ¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (16 * ↑(defaultD a) ^ s J))) : s J ≤ 𝔰 pLemma 7.5.8.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hpp ∈ (fun x ↦ t.𝔗 x) u₁ ∪ (fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X∪Union.union.{u} {α : Type u} [self : Union α] : α → α → α`a ∪ b` is the union of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∪` in identifiers is `union`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X) (h¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (16 * ↑(defaultD a) ^ s J)): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.)) : ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 Xtheorem TileStructure.Forest.scales_impacting_interval.{u_1}
TileStructure.Forest.scales_impacting_interval.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ p : 𝔓 X} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hp : p ∈ (fun x ↦ t.𝔗 x) u₁ ∪ (fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) (h : ¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (16 * ↑(defaultD a) ^ s J))) : s J ≤ 𝔰 pLemma 7.5.8.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hpp ∈ (fun x ↦ t.𝔗 x) u₁ ∪ (fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X∪Union.union.{u} {α : Type u} [self : Union α] : α → α → α`a ∪ b` is the union of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∪` in identifiers is `union`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X) (h¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (16 * ↑(defaultD a) ^ s J)): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.)) : ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 XLemma 7.5.8.
Proof. By Lemma 1.101, we have that in both cases,
\fC \subset \mathfrak{S}. If \fp \in \fC with
B(\scI(\fp)) \cap B'(J) \neq \emptyset and \ps(\fp) < s(J), then
\scI(\fp) \subset B(c(J), 100 D^{s(J) + 1}). Since
\fp \in \mathfrak{S}, it follows from the definition of \mathcal{J}'
that s(J) = -S, which contradicts \ps(\fp) < s(J).
Uses Lemma 1.106 and Lemma 1.109.
Let \fC_1 = \fT(\fu_1) and
\fC_2 = \fT(\fu_2) \cap \mathfrak{S}. Then for i = 1,2 and each
J \in \mathcal{J}' and all bounded g with bounded support, we have
\sup_{B'(J)} |T_{\fC_i}^*g| \leq \inf_{B^\circ{}(J)} |T^*_{\fC_i} g| + 2^{128a^3+4a+3} \inf_{J} M_{\mathcal{B},1} |g|
and for all y,y' \in B'(J)
|e(\fcc(\fu_i)(y)) T_{\fC_i}^* g(y) - e(\fcc(\fu_i)(y')) T_{\fC_i}^* g(y')|
\le 2^{128a^3+4a+1} \left(\frac{\rho(y,y')}{D^{s(J)}}\right)^{1/a} \inf_J M_{\mathcal{B},1} |g|.
Lean code for Lemma1.110●3 theorems
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.global_tree_control1_edist_left.{u_1}
TileStructure.Forest.global_tree_control1_edist_left.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {x x' : X} {f : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (hx : x ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J)) (hx' : x' ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J)) : edist (Complex.exp (Complex.I * ↑((𝒬 u₁) x)) * adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₁) f x) (Complex.exp (Complex.I * ↑((𝒬 u₁) x')) * adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₁) f x') ≤ ↑(TileStructure.Forest.C7_5_9d a) * (edist x x' / ↑(defaultD a) ^ s J) ^ (↑a)⁻¹ * ⨅ x ∈ J, MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f xEquation (7.5.18) of Lemma 7.5.9 for `ℭ = t u₁`.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hxx ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J): xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (hx'x' ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J): x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) : edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₁𝔓 X) xX))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X) fX → ℂxX)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₁𝔓 X) x'X))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X) fX → ℂx'X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_9dTileStructure.Forest.C7_5_9d (a : ℕ) : NNRealThe constant used in `global_tree_control1_edist`. Has value `2 ^ (128 * a ^ 3 + 4 * a + 1)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two pointsxXx'X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(↑aℕ)⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⨅ xX∈ JGrid X, MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxXtheorem TileStructure.Forest.global_tree_control1_edist_left.{u_1}
TileStructure.Forest.global_tree_control1_edist_left.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {x x' : X} {f : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (hx : x ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J)) (hx' : x' ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J)) : edist (Complex.exp (Complex.I * ↑((𝒬 u₁) x)) * adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₁) f x) (Complex.exp (Complex.I * ↑((𝒬 u₁) x')) * adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₁) f x') ≤ ↑(TileStructure.Forest.C7_5_9d a) * (edist x x' / ↑(defaultD a) ^ s J) ^ (↑a)⁻¹ * ⨅ x ∈ J, MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f xEquation (7.5.18) of Lemma 7.5.9 for `ℭ = t u₁`.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hxx ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J): xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (hx'x' ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J): x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) : edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₁𝔓 X) xX))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X) fX → ℂxX)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₁𝔓 X) x'X))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X) fX → ℂx'X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_9dTileStructure.Forest.C7_5_9d (a : ℕ) : NNRealThe constant used in `global_tree_control1_edist`. Has value `2 ^ (128 * a ^ 3 + 4 * a + 1)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two pointsxXx'X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(↑aℕ)⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⨅ xX∈ JGrid X, MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxXEquation (7.5.18) of Lemma 7.5.9 for `ℭ = t u₁`.
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.global_tree_control1_edist_right.{u_1}
TileStructure.Forest.global_tree_control1_edist_right.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {x x' : X} {f : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (hx : x ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J)) (hx' : x' ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J)) : edist (Complex.exp (Complex.I * ↑((𝒬 u₂) x)) * adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) f x) (Complex.exp (Complex.I * ↑((𝒬 u₂) x')) * adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) f x') ≤ ↑(TileStructure.Forest.C7_5_9d a) * (edist x x' / ↑(defaultD a) ^ s J) ^ (↑a)⁻¹ * ⨅ x ∈ J, MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f xEquation (7.5.18) of Lemma 7.5.9 for `ℭ = t u₂ ∩ 𝔖₀ t u₁ u₂`.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hxx ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J): xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (hx'x' ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J): x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) : edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₂𝔓 X) xX))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.fX → ℂxX)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₂𝔓 X) x'X))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.fX → ℂx'X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_9dTileStructure.Forest.C7_5_9d (a : ℕ) : NNRealThe constant used in `global_tree_control1_edist`. Has value `2 ^ (128 * a ^ 3 + 4 * a + 1)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two pointsxXx'X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(↑aℕ)⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⨅ xX∈ JGrid X, MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxXtheorem TileStructure.Forest.global_tree_control1_edist_right.{u_1}
TileStructure.Forest.global_tree_control1_edist_right.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {x x' : X} {f : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) (hx : x ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J)) (hx' : x' ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J)) : edist (Complex.exp (Complex.I * ↑((𝒬 u₂) x)) * adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) f x) (Complex.exp (Complex.I * ↑((𝒬 u₂) x')) * adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) f x') ≤ ↑(TileStructure.Forest.C7_5_9d a) * (edist x x' / ↑(defaultD a) ^ s J) ^ (↑a)⁻¹ * ⨅ x ∈ J, MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f xEquation (7.5.18) of Lemma 7.5.9 for `ℭ = t u₂ ∩ 𝔖₀ t u₁ u₂`.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {xXx'X: XType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (hxx ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J): xX∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (hx'x' ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J): x'X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) : edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two points(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₂𝔓 X) xX))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.fX → ℂxX)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.expComplex.exp (z : ℂ) : ℂThe complex exponential function, defined via its Taylor series(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Complex.IComplex.I : ℂThe imaginary unit.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑((𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₂𝔓 X) x'X))HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.fX → ℂx'X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_5_9dTileStructure.Forest.C7_5_9d (a : ℕ) : NNRealThe constant used in `global_tree_control1_edist`. Has value `2 ^ (128 * a ^ 3 + 4 * a + 1)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.edistEDist.edist.{u_2} {α : Type u_2} [self : EDist α] : α → α → ENNRealExtended distance between two pointsxXx'X/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(↑aℕ)⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⨅ xX∈ JGrid X, MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxXEquation (7.5.18) of Lemma 7.5.9 for `ℭ = t u₂ ∩ 𝔖₀ t u₁ u₂`.
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.global_tree_control1_supbound.{u_1}
TileStructure.Forest.global_tree_control1_supbound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (ℭ : Set (𝔓 X)) (hℭ : ℭ = (fun x ↦ t.𝔗 x) u₁ ∨ ℭ = (fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ⨆ x ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J), ‖adjointCarlesonSum ℭ f x‖ₑ ≤ (⨅ x ∈ Metric.ball (c J) (8⁻¹ * ↑(defaultD a) ^ s J), ‖adjointCarlesonSum ℭ f x‖ₑ) + ↑(TileStructure.Forest.C7_5_9s a) * ⨅ x ∈ J, MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f xEquation (7.5.17) of Lemma 7.5.9.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (ℭSet (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)) (hℭℭ = (fun x ↦ t.𝔗 x) u₁ ∨ ℭ = (fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂: ℭSet (𝔓 X)=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X∨Or (a b : Prop) : Prop`Or a b`, or `a ∨ b`, is the disjunction of propositions. There are two constructors for `Or`, called `Or.inl : a → a ∨ b` and `Or.inr : b → a ∨ b`, and you can use `match` or `cases` to destruct an `Or` assumption into the two cases. Conventions for notations in identifiers: * The recommended spelling of `∨` in identifiers is `or`.ℭSet (𝔓 X)=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ⨆ xX∈ Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`., ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4ℭSet (𝔓 X)fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.(⨅ xX∈ Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`., ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4ℭSet (𝔓 X)fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.) +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑(TileStructure.Forest.C7_5_9sTileStructure.Forest.C7_5_9s (a : ℕ) : NNRealThe constant used in `global_tree_control1_supbound`. Has value `2 ^ (128 * a ^ 3 + 4 * a + 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⨅ xX∈ JGrid X, MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxXtheorem TileStructure.Forest.global_tree_control1_supbound.{u_1}
TileStructure.Forest.global_tree_control1_supbound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (ℭ : Set (𝔓 X)) (hℭ : ℭ = (fun x ↦ t.𝔗 x) u₁ ∨ ℭ = (fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ⨆ x ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J), ‖adjointCarlesonSum ℭ f x‖ₑ ≤ (⨅ x ∈ Metric.ball (c J) (8⁻¹ * ↑(defaultD a) ^ s J), ‖adjointCarlesonSum ℭ f x‖ₑ) + ↑(TileStructure.Forest.C7_5_9s a) * ⨅ x ∈ J, MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f xEquation (7.5.17) of Lemma 7.5.9.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (ℭSet (𝔓 X): SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.(𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1)) (hℭℭ = (fun x ↦ t.𝔗 x) u₁ ∨ ℭ = (fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂: ℭSet (𝔓 X)=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₁𝔓 X∨Or (a b : Prop) : Prop`Or a b`, or `a ∨ b`, is the disjunction of propositions. There are two constructors for `Or`, called `Or.inl : a → a ∨ b` and `Or.inr : b → a ∨ b`, and you can use `match` or `cases` to destruct an `Or` assumption into the two cases. Conventions for notations in identifiers: * The recommended spelling of `∨` in identifiers is `or`.ℭSet (𝔓 X)=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ⨆ xX∈ Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`., ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4ℭSet (𝔓 X)fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.(⨅ xX∈ Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`., ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4ℭSet (𝔓 X)fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.) +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑(TileStructure.Forest.C7_5_9sTileStructure.Forest.C7_5_9s (a : ℕ) : NNRealThe constant used in `global_tree_control1_supbound`. Has value `2 ^ (128 * a ^ 3 + 4 * a + 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⨅ xX∈ JGrid X, MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxXEquation (7.5.17) of Lemma 7.5.9.
Proof. Note that TreeUB follows from TreeHolder, since for
y' \in B^\circ{}(J), by the triangle inequality,
\left(\frac{\rho(y,y')}{D^{s(J)}}\right)^{1/a}\le \Big(16 + \frac{1}8\Big)^{1/a}\le 2^2.
By the triangle inequality, Lemma 1.95 and Lemma 1.106,
we have for all y, y' \in B'(J)
|e(\fcc(\fu_i)(y)) T_{\fC_i}^* g(y) - e(\fcc(\fu_i)(y')) T_{\fC_i}^* g(y')|
\le \sum_{\substack{\fp \in \fC_i\\ B(\scI(\fp)) \cap B'(J) \neq \emptyset}} |e(\fcc(\fu_i)(y)) T_{\fp}^* g(y) - e(\fcc(\fu_i)(y')) T_{\fp}^* g(y')|
\le 2^{128a^3}\rho(y,y')^{1/a} \sum_{\substack{\fp \in \fC_i\\ B(\scI(\fp)) \cap B'(J) \neq \emptyset}} \frac{D^{- \ps(\fp)/a}}{\mu(B(\pc(\fp), 4D^{\ps(\fp)}))} \int_{E(\fp)} |g| \, \mathrm{d}\mu.
By Lemma 1.109, we have \ps(\fp) \ge s(J) for all
\fp occurring in the sum. Further, for each s \ge s(J), the sets
E(\fp) for \fp \in \fP with \ps(\fp) = s are pairwise disjoint by
defineep and eq-dis-freq-cover, and contained in
B(c(J), 32D^{s}) by eq-vol-sp-cube and the triangle inequality. Using
also the doubling estimate doublingx, we obtain that the expression in the
last display can be estimated by
2^{128a^3}\rho(y,y')^{1/a} \sum_{S \ge s \ge s(J)} D^{-s/a} \frac{2^{4a}}{\mu(B(c(J), 32D^{s}))} \int_{B(c(J), 32D^{s})} |g| \, \mathrm{d}\mu
\le 2^{128a^3+4a} \left(\frac{\rho(y,y')}{D^{s(J)}}\right)^{1/a} \sum_{S \ge s \ge s(J)} D^{(s(J) - s)/a} \inf_J M_{\mathcal{B},1} |g|.
Since D^{-1/a}\le\frac12, we have
\sum_{S \ge s \ge s(J)} D^{(s(J) - s)/a} \le 2.
Estimate TreeHolder, and therefore the lemma, follow.
Uses Lemma 1.110 and Lemma 1.108.
We have for all J \in \mathcal{J}' and all bounded g with bounded
support
\sup_{B'(J)} |T^*_{\fT(\fu_2) \cap \mathfrak{S}} g| \le \inf_{B^\circ{}(J)} |T^*_{\fT(\fu_2)} g| + 2^{129a^3} \inf_{J} M_{\mathcal{B},1}|g|.
Lean code for Lemma1.111●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.global_tree_control2.{u_1}
TileStructure.Forest.global_tree_control2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ⨆ x ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J), ‖adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) f x‖ₑ ≤ (⨅ x ∈ Metric.ball (c J) (8⁻¹ * ↑(defaultD a) ^ s J), ‖adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂) f x‖ₑ) + ↑(TileStructure.Forest.C7_5_10 a) * ⨅ x ∈ J, MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f xLemma 7.5.10{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ⨆ xX∈ Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`., ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.(⨅ xX∈ Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`., ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X) fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.) +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑(TileStructure.Forest.C7_5_10TileStructure.Forest.C7_5_10 (a : ℕ) : NNRealThe constant used in `global_tree_control2`. Has value `2 ^ (129 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⨅ xX∈ JGrid X, MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxXtheorem TileStructure.Forest.global_tree_control2.{u_1}
TileStructure.Forest.global_tree_control2.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f : X → ℂ} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : ⨆ x ∈ Metric.ball (c J) (16 * ↑(defaultD a) ^ s J), ‖adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ ∩ t.𝔖₀ u₁ u₂) f x‖ₑ ≤ (⨅ x ∈ Metric.ball (c J) (8⁻¹ * ↑(defaultD a) ^ s J), ‖adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂) f x‖ₑ) + ↑(TileStructure.Forest.C7_5_10 a) * ⨅ x ∈ J, MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f xLemma 7.5.10{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : ⨆ xX∈ Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.16 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`., ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X∩Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)Inter.inter.{u} {α : Type u} [self : Inter α] : α → α → α`a ∩ b` is the intersection of `a` and `b`. Conventions for notations in identifiers: * The recommended spelling of `∩` in identifiers is `inter`.fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.(⨅ xX∈ Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`., ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4((fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X) fX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.) +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `+` in identifiers is `add`.↑(TileStructure.Forest.C7_5_10TileStructure.Forest.C7_5_10 (a : ℕ) : NNRealThe constant used in `global_tree_control2`. Has value `2 ^ (129 * a ^ 3)` in the blueprint.aℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.⨅ xX∈ JGrid X, MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxXLemma 7.5.10
Proof. By Lemma 1.110
\sup_{B'(J)} |T^*_{\fT(\fu_2) \cap \mathfrak{S}} g| \le \inf_{B^\circ{}(J)} |T_{\fT(\fu_2) \cap \mathfrak{S}}^* g| + 2^{128a^3+4a+3} \inf_{J} M_{\mathcal{B}, 1} |g|
\le \inf_{B^\circ{}(J)} |T_{\fT(\fu_2)}^* g| + \sup_{B^\circ{}(J)} |T_{\fT(\fu_2) \setminus \mathfrak{S}}^* g| + 2^{128a^3+4a+3} \inf_{J} M_{\mathcal{B}, 1} |g|,
and by Lemma 1.108
\le \inf_{B^\circ{}(J)} |T_{\fT(\fu_2)}^* g| + (2^{104a^3} + 2^{128a^3+4a+3}) \inf_{J} M_{\mathcal{B}, 1} |g|.
This completes the proof.
Proof of Lemma 1.105. Let P be the product on the right-hand
side of hHolder, and h_J be as defined in def-hj. By eq-pao-2 and
Lemma 1.95, the function h_J is supported in
B'(J) \cap \scI(\fu_1). By eq-pao-2, Lemma 1.110 and
Lemma 1.111, we have for all y \in B'(J):
|h_J(y)| \le 2^{257a^3+4a+3} P.
We have by the triangle inequality
|h_J(y) - h_J(y')|
\le |\chi_J(y) - \chi_J(y')| |T_{\fT(\fu_1)}^* g_1(y)| |T_{\fT(\fu_2) \cap \mathfrak{S}}^* g_2(y)|
+ |\chi_J(y')| |e(\fcc(\fu_1)(y)) T_{\fT(\fu_1)}^* g_1(y) - e(\fcc(\fu_1)(y')) T_{\fT(\fu_1)}^* g_1(y')| |T_{\fT(\fu_2) \cap \mathfrak{S}}^* g_2(y)|
+ |\chi_J(y')| |T_{\fT(\fu_1)}^* g_1(y')| |e(\fcc(\fu_2)(y)) T_{\fT(\fu_2) \cap \mathfrak{S}}^* g_2(y) - e(\fcc(\fu_2)(y')) T_{\fT(\fu_2) \cap \mathfrak{S}}^* g_2(y')|.
As h_J is supported in \scI(\fu_1), we can assume without loss of
generality that y' \in \scI(\fu_1). If y \notin \scI(\fu_1), then
eq-h-Lip-1 vanishes. If y \in \scI(\fu_1) then we have by eq-pao-3,
Lemma 1.110 and Lemma 1.111
that eq-h-Lip-1 is bounded by
2^{484a^3+4a+3} \frac{\rho(y,y')}{D^{s(J)}} P,
where P denotes the product on the right hand side of hHolder.
By eq-pao-2, Lemma 1.110 and Lemma 1.111, we have
the bound
2^{257a^3+4a+1} \left(\frac{\rho(y,y')}{D^{s(J)}}\right)^{1/a} P.
By eq-pao-2, and twice Lemma 1.110, we have
the bound
2^{256a^3+8a+5} \left(\frac{\rho(y,y')}{D^{s(J)}}\right)^{1/a} P.
Using that \rho(y,y') \le 32D^{s(J)} and a \ge 4, the lemma follows.
1.5.15.3. The van der Corput estimate
Uses Lemma 1.101.
For all J \in \mathcal{J}', we have that
d_{B(J)}(\fcc(\fu_1), \fcc(\fu_2)) \ge 2^{-201a^3} 2^{Zn/2}.
Lean code for Lemma1.112●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/LargeSeparation.leancomplete
theorem TileStructure.Forest.lower_oscillation_bound.{u_1}
TileStructure.Forest.lower_oscillation_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) : ↑(TileStructure.Forest.C7_5_11 a n) ≤ dist_{c J, 8 * ↑(defaultD a) ^ s J} (𝒬 u₁) (𝒬 u₂)Lemma 7.5.11{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) : ↑(TileStructure.Forest.C7_5_11TileStructure.Forest.C7_5_11 (a n : ℕ) : NNRealThe constant used in `lower_oscillation_bound`. Has value `2 ^ (Z * n / 2 - 201 * a ^ 3)` in the blueprint.aℕnℕ) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.dist_{Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two pointscc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X,Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X}Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₁𝔓 X) (𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₂𝔓 X)theorem TileStructure.Forest.lower_oscillation_bound.{u_1}
TileStructure.Forest.lower_oscillation_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hJ : J ∈ t.𝓙₅ u₁ u₂) : ↑(TileStructure.Forest.C7_5_11 a n) ≤ dist_{c J, 8 * ↑(defaultD a) ^ s J} (𝒬 u₁) (𝒬 u₂)Lemma 7.5.11{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hJJ ∈ t.𝓙₅ u₁ u₂: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₅TileStructure.Forest.𝓙₅.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.5.1. We use a different notation to distinguish it from the 𝓙' used in Section 7.6u₁𝔓 Xu₂𝔓 X) : ↑(TileStructure.Forest.C7_5_11TileStructure.Forest.C7_5_11 (a n : ℕ) : NNRealThe constant used in `lower_oscillation_bound`. Has value `2 ^ (Z * n / 2 - 201 * a ^ 3)` in the blueprint.aℕnℕ) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.dist_{Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two pointscc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X,Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X}Dist.dist.{u_3} {α : Type u_3} [self : Dist α] : α → α → ℝDistance between two points(𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₁𝔓 X) (𝒬PreTileStructure.𝒬.{u, u_1, u_2} {𝕜 : Type u_1} {inst✝ : RCLike 𝕜} {X : Type u} {A : outParam NNReal} {inst✝¹ : PseudoMetricSpace X} {inst✝² : MeasureTheory.DoublingMeasure X A} {inst✝³ : FunctionDistances 𝕜 X} {Q : outParam (MeasureTheory.SimpleFunc X (Θ X))} {D : outParam ℕ} {κ : outParam ℝ} {S : outParam ℕ} {o : outParam X} [self : PreTileStructure Q D κ S o] : PreTileStructure.𝔓 𝕜 X → Θ Xu₂𝔓 X)Lemma 7.5.11
Proof. Since \emptyset \ne \fT(\fu_1) \subset \mathfrak{S} by
Lemma 1.101, there exists at least one tile
\fp \in \mathcal{S} with \scI(\fp) \subsetneq \scI(\fu_1). Thus
\scI(\fu_1) \notin \mathcal{J}', so J \subsetneq \scI(\fu_1). Thus
there exists a cube J' \in \mathcal{D} with J \subset J' and
s(J') = s(J) + 1, by coverdyadic and dyadicproperty. By definition of
\mathcal{J'} and the triangle inequality, there exists
\fp \in \mathfrak{S} such that
\scI(\fp) \subset B(c(J'), 100 D^{s(J') + 1}) \subset B(c(J), 128 D^{s(J)+2}).
Thus, by definition of \mathfrak{S}:
2^{Zn/2} \le d_{\fp}(\fcc(\fu_1), \fcc(\fu_2)) \le d_{B(c(J), 128 D^{s(J)+2})}(\fcc(\fu_1), \fcc(\fu_2)).
By the doubling property firstdb, this is
\le 2^{200a^3 + 4a} d_{B(J)}(\fcc(\fu_1), \fcc(\fu_2)),
which gives the lemma using a \ge 4.
Now we are ready to prove Lemma 1.99.
Proof of Lemma 1.99. The left-hand side of
eq-lhs-big-sep-tree equals
\left| \int_{X} T_{\fT(\fu_1)}^* g_1 \overline{T_{\fT(\fu_2) \cap \mathfrak{S}}^* g_2 }\right|.
By Lemma 1.95, the right hand side is supported in
\scI(\fu_1). Using eq-pao-1 of Lemma 1.103 and the
definition def-hj of h_J, we thus have
\le \sum_{J \in \mathcal{J}'} \left|\int_{X} e(\fcc(\fu_2)(y) - \fcc(\fu_1)(y)) h_J(y) \, \mathrm{d}\mu(y) \right|.
Using Theorem 1.8 with the ball B(J), we bound this by
\le 2^{7a} \sum_{J \in \mathcal{J}'} \mu(B(J)) \|h_J\|_{C^{\tau}(B'(J))} (1 + d_{B(J)}(\fcc(\fu_2), \fcc(\fu_1)))^{-1/(2a^2+a^3)}.
Using Lemma 1.105, Lemma 1.112 and a \ge 4, we
bound the above by
\le 2^{485a^3+7a+3a^3+3a} 2^{-Zn/(4a^2 + 2a^3)} \sum_{J \in \mathcal{J}'} \mu(B(J))
\times \prod_{j=1}^2 (\inf_{B^\circ{}(J)} |T_{\fT(\fu_j)}^* g_j| + \inf_J M_{\mathcal{B}, 1} g_j).
By the doubling property doublingx
\mu(B(J)) \le 2^{6a} \mu(B^\circ{}(J)),
thus
\mu(B(J)) \prod_{j=1}^2 (\inf_{B^\circ{}(J)} |T_{\fT(\fu_j)}^* g_j| + \inf_J M_{\mathcal{B}, 1} g_j)
\le 2^{6a} \int_{B^\circ{}(J)} \prod_{j=1}^2 ( |T_{\fT(\fu_j)}^* g_j|(x) + M_{\mathcal{B},1} g_j(x)) \, \mathrm{d}\mu(x)
\le 2^{6a} \int_J \prod_{j=1}^2 ( |T_{\fT(\fu_j)}^* g_j|(x) + M_{\mathcal{B},1} g_j(x)) \, \mathrm{d}\mu(x).
Summing over J \in \mathcal{J}', we obtain
the estimate eq-big-sep-1:
2^{499a^3} 2^{-Zn/(4a^2 + 2a^3)} \int_X \prod_{j=1}^2 ( |T_{\fT(\fu_j)}^* g_j|(x) + M_{\mathcal{B},1} g_j(x)) \, \mathrm{d}\mu(x).
Applying the Cauchy-Schwarz inequality, Lemma 1.99
follows.
1.5.16. Proof of The Remaining Tiles Lemma
-
TileStructure.Forest.union_𝓙₆[complete] -
TileStructure.Forest.pairwiseDisjoint_𝓙₆[complete]
Uses Lemma 1.83.
We have
\scI(\fu_1) = \dot{\bigcup_{J \in \mathcal{J}'}} J.
Lean code for Lemma1.113●2 theorems
Associated Lean declarations
-
TileStructure.Forest.union_𝓙₆[complete]
-
TileStructure.Forest.pairwiseDisjoint_𝓙₆[complete]
-
TileStructure.Forest.union_𝓙₆[complete] -
TileStructure.Forest.pairwiseDisjoint_𝓙₆[complete]
-
theoremdefined in Carleson/ForestOperator/RemainingTiles.leancomplete
theorem TileStructure.Forest.union_𝓙₆.{u_1}
TileStructure.Forest.union_𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ : 𝔓 X} (hu₁ : u₁ ∈ t) : ⋃ J ∈ t.𝓙₆ u₁, ↑J = ↑(𝓘 u₁)Part of Lemma 7.6.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : ⋃ JGrid X∈ tTileStructure.Forest X n.𝓙₆TileStructure.Forest.𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.6. We use a different notation to distinguish it from the 𝓙' used in Section 7.5u₁𝔓 X, ↑JGrid X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)theorem TileStructure.Forest.union_𝓙₆.{u_1}
TileStructure.Forest.union_𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ : 𝔓 X} (hu₁ : u₁ ∈ t) : ⋃ J ∈ t.𝓙₆ u₁, ↑J = ↑(𝓘 u₁)Part of Lemma 7.6.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) : ⋃ JGrid X∈ tTileStructure.Forest X n.𝓙₆TileStructure.Forest.𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.6. We use a different notation to distinguish it from the 𝓙' used in Section 7.5u₁𝔓 X, ↑JGrid X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)Part of Lemma 7.6.1.
-
theoremdefined in Carleson/ForestOperator/RemainingTiles.leancomplete
theorem TileStructure.Forest.pairwiseDisjoint_𝓙₆.{u_1}
TileStructure.Forest.pairwiseDisjoint_𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ : 𝔓 X} : (t.𝓙₆ u₁).PairwiseDisjoint fun I ↦ ↑IPart of Lemma 7.6.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} : (tTileStructure.Forest X n.𝓙₆TileStructure.Forest.𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.6. We use a different notation to distinguish it from the 𝓙' used in Section 7.5u₁𝔓 X).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.fun IGrid X↦ ↑IGrid Xtheorem TileStructure.Forest.pairwiseDisjoint_𝓙₆.{u_1}
TileStructure.Forest.pairwiseDisjoint_𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ : 𝔓 X} : (t.𝓙₆ u₁).PairwiseDisjoint fun I ↦ ↑IPart of Lemma 7.6.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} : (tTileStructure.Forest X n.𝓙₆TileStructure.Forest.𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.6. We use a different notation to distinguish it from the 𝓙' used in Section 7.5u₁𝔓 X).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.fun IGrid X↦ ↑IGrid XPart of Lemma 7.6.1.
Proof. By Lemma 1.83, it remains only to show that each
J \in \mathcal{J}(\fT(\fu_1)) with J \cap \scI(\fu_1) \ne \emptyset is
in \mathcal{J}'. But if J \notin \mathcal{J}', then by
dyadicproperty \scI(\fu_1) \subsetneq J. Pick \fp \in \fT(\fu_1).
Then \scI(\fp) \subsetneq J. This contradicts the definition of
\mathcal{J}(\fT(\fu_1)).
Lemma 1.100 follows from the following key estimate.
Uses Lemma 1.95, Lemma 1.101, Lemma 1.113, Lemma 1.115, and Lemma 1.116.
We have for all bounded f with bounded support
\|P_{\mathcal{J}'}|T_{\fT(\fu_2) \setminus \mathfrak{S}}^* g_2|\|_2 \le 2^{102a^3+21a+5} 2^{-\frac{25}{101a}Zn\kappa} \|\mathbf{1}_{\scI(\fu_1)} M_{\mathcal{B},1} |g_2|\|_2.
Lean code for Lemma1.114●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/RemainingTiles.leancomplete
theorem TileStructure.Forest.bound_for_tree_projection.{u_1}
TileStructure.Forest.bound_for_tree_projection.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f : X → ℂ} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : MeasureTheory.eLpNorm (TileStructure.Forest.approxOnCube (t.𝓙₆ u₁) fun x ↦ ‖adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂) f x‖) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_6_2 a n) * MeasureTheory.eLpNorm ((↑(𝓘 u₁)).indicator fun x ↦ MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f x) 2 MeasureTheory.volumeLemma 7.6.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(tTileStructure.Forest X n.𝓙₆TileStructure.Forest.𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.6. We use a different notation to distinguish it from the 𝓙' used in Section 7.5u₁𝔓 X) fun xX↦ ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_6_2TileStructure.Forest.C7_6_2 (a n : ℕ) : NNRealThe constant used in `bound_for_tree_projection`.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.((↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.fun xX↦ MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.bound_for_tree_projection.{u_1}
TileStructure.Forest.bound_for_tree_projection.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ : 𝔓 X} {f : X → ℂ} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hf : MeasureTheory.BoundedCompactSupport f MeasureTheory.volume) : MeasureTheory.eLpNorm (TileStructure.Forest.approxOnCube (t.𝓙₆ u₁) fun x ↦ ‖adjointCarlesonSum ((fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂) f x‖) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_6_2 a n) * MeasureTheory.eLpNorm ((↑(𝓘 u₁)).indicator fun x ↦ MB MeasureTheory.volume TileStructure.Forest.𝓑 TileStructure.Forest.c𝓑 TileStructure.Forest.r𝓑 f x) 2 MeasureTheory.volumeLemma 7.6.2.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {fX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hfMeasureTheory.BoundedCompactSupport f MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsfX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(TileStructure.Forest.approxOnCubeTileStructure.Forest.approxOnCube.{u_1, u_2} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {E' : Type u_2} [NormedAddCommGroup E'] [NormedSpace ℝ E'] (C : Set (Grid X)) (f : X → E') (x : X) : E'The projection operator `P_𝓒 f(x)`, given above Lemma 7.1.3. In lemmas the `c` will be pairwise disjoint on `C`.(tTileStructure.Forest X n.𝓙₆TileStructure.Forest.𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.6. We use a different notation to distinguish it from the 𝓙' used in Section 7.5u₁𝔓 X) fun xX↦ ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.adjointCarlesonSumadjointCarlesonSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (ℭ : Set (𝔓 X)) (f : X → ℂ) (x : X) : ℂThe definition of `T_ℭ*g(x)`, defined at the bottom of Section 7.4(SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X)SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.fX → ℂxX‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_6_2TileStructure.Forest.C7_6_2 (a n : ℕ) : NNRealThe constant used in `bound_for_tree_projection`.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.((↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X)).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.fun xX↦ MBMB.{u_1, u_2, u_3} {X : Type u_1} {E : Type u_2} [MetricSpace X] [MeasurableSpace X] [NormedAddCommGroup E] {ι : Type u_3} (μ : MeasureTheory.Measure X) (𝓑 : Set ι) (c : ι → X) (r : ι → ℝ) (u : X → E) (x : X) : ENNRealThe Hardy-Littlewood maximal function w.r.t. a collection of balls 𝓑 with exponent 1. M_𝓑 in the blueprint.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.TileStructure.Forest.𝓑TileStructure.Forest.𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] : Set (ℕ × ℕ × Grid X)The indexing set for the collection of balls 𝓑, defined above Lemma 7.1.3.TileStructure.Forest.c𝓑TileStructure.Forest.c𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : XThe center function for the collection of balls 𝓑.TileStructure.Forest.r𝓑TileStructure.Forest.r𝓑.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (z : ℕ × ℕ × Grid X) : ℝThe radius function for the collection of balls 𝓑.fX → ℂxX) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Lemma 7.6.2.
We prove this lemma below. First, we deduce Lemma 1.100.
Proof of Lemma 1.100. By Lemma 1.88 and
Lemma 1.95, we have
that the left-hand side of eq-lhs-small-sep-tree is bounded by
2^{130a^3} \|P_{\mathcal{L}(\fT(\fu_1))} |\mathbf{1}_{\scI(\fu_1)}g_1| \|_2 \|P_{\mathcal{J}(\fT(\fu_1) )}|\mathbf{1}_{\scI(\fu_1)} T_{\fT(\fu_2) \setminus \mathfrak{S}}^* g_2|\|_2.
It follows from the definition of the projection operator P and Jensen's
inequality that
\|P_{\mathcal{L}(\fT(\fu_1))} |g_1\mathbf{1}_{\scI(\fu_1)}| \|_2 \le \|g_1 \mathbf{1}_{\scI(\fu_1)}\|_2.
By Lemma 1.113, a cube J \in \mathcal{J}(\fT(\fu_1)) intersects
\scI(\fu_1) if and only if J \in \mathcal{J}'. Thus
P_{\mathcal{J}(\fT(\fu_1) )}|\mathbf{1}_{\scI(\fu_1)} T_{\fT(\fu_2) \setminus \mathfrak{S}}^* g_2| = P_{\mathcal{J}'}|T_{\fT(\fu_2) \setminus \mathfrak{S}}^* g_2|.
Combining this with Lemma 1.114, the definition definekappa
and a \ge 4 proves the lemma.
We need two more auxiliary lemmas before we prove Lemma 1.114.
-
TileStructure.Forest.thin_scale_impact[complete]
If \fp \in \fT(\fu_2) \setminus \mathfrak{S} and J \in \mathcal{J'} with
B(\scI(\fp)) \cap B(J) \ne \emptyset, then
\ps(\fp) \le s(J) + 2 - \frac{Zn}{202a^3}.
Lean code for Lemma1.115●1 theorem
Associated Lean declarations
-
TileStructure.Forest.thin_scale_impact[complete]
-
TileStructure.Forest.thin_scale_impact[complete]
-
theoremdefined in Carleson/ForestOperator/RemainingTiles.leancomplete
theorem TileStructure.Forest.thin_scale_impact.{u_1}
TileStructure.Forest.thin_scale_impact.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ p : 𝔓 X} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hp : p ∈ (fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂) (hJ : J ∈ t.𝓙₆ u₁) (hd : ¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (8 * ↑(defaultD a) ^ s J))) : ↑(𝔰 p) ≤ ↑(s J) - TileStructure.Forest.C7_6_3 a nLemma 7.6.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hpp ∈ (fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X) (hJJ ∈ t.𝓙₆ u₁: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₆TileStructure.Forest.𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.6. We use a different notation to distinguish it from the 𝓙' used in Section 7.5u₁𝔓 X) (hd¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (8 * ↑(defaultD a) ^ s J)): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.)) : ↑(𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X) -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).TileStructure.Forest.C7_6_3TileStructure.Forest.C7_6_3 (a n : ℕ) : ℝThe constant used in `thin_scale_impact`. This is denoted `s₁` in the proof of Lemma 7.6.3. Has value `Z * n / (202 * a ^ 3) - 2` in the blueprint.aℕnℕtheorem TileStructure.Forest.thin_scale_impact.{u_1}
TileStructure.Forest.thin_scale_impact.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ u₂ p : 𝔓 X} {J : Grid X} (hu₁ : u₁ ∈ t) (hu₂ : u₂ ∈ t) (hu : u₁ ≠ u₂) (h2u : 𝓘 u₁ ≤ 𝓘 u₂) (hp : p ∈ (fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂) (hJ : J ∈ t.𝓙₆ u₁) (hd : ¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (8 * ↑(defaultD a) ^ s J))) : ↑(𝔰 p) ≤ ↑(s J) - TileStructure.Forest.C7_6_3 a nLemma 7.6.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 Xu₂𝔓 Xp𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hu₁u₁ ∈ t: u₁𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (hu₂u₂ ∈ t: u₂𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n) (huu₁ ≠ u₂: u₁𝔓 X≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.u₂𝔓 X) (h2u𝓘 u₁ ≤ 𝓘 u₂: 𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₂𝔓 X) (hpp ∈ (fun x ↦ t.𝔗 x) u₂ \ t.𝔖₀ u₁ u₂: p𝔓 X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.(fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u₂𝔓 X\SDiff.sdiff.{u} {α : Type u} [self : SDiff α] : α → α → α`a \ b` is the set difference of `a` and `b`, consisting of all elements in `a` that are not in `b`. Conventions for notations in identifiers: * The recommended spelling of `\` in identifiers is `sdiff`.tTileStructure.Forest X n.𝔖₀TileStructure.Forest.𝔖₀.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ u₂ : 𝔓 X) : Set (𝔓 X)The set `𝔖` defined in the proof of Lemma 7.4.4. We append a subscript 0 to distinguish it from the section variable.u₁𝔓 Xu₂𝔓 X) (hJJ ∈ t.𝓙₆ u₁: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₆TileStructure.Forest.𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.6. We use a different notation to distinguish it from the 𝓙' used in Section 7.5u₁𝔓 X) (hd¬Disjoint (Metric.ball (𝔠 p) (8 * ↑(defaultD a) ^ 𝔰 p)) (Metric.ball (c J) (8 * ↑(defaultD a) ^ s J)): ¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(𝔠𝔠.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : Xp𝔓 X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.) (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XJGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.)) : ↑(𝔰𝔰.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] (p : 𝔓 X) : ℤp𝔓 X) ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X) -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).TileStructure.Forest.C7_6_3TileStructure.Forest.C7_6_3 (a n : ℕ) : ℝThe constant used in `thin_scale_impact`. This is denoted `s₁` in the proof of Lemma 7.6.3. Has value `Z * n / (202 * a ^ 3) - 2` in the blueprint.aℕnℕLemma 7.6.3.
Proof. Suppose that \ps(\fp) > s(J) + 2 -\frac{Zn}{202a^3} =: s(J) - s_1.
Then, we have s_1 + 2 \ge 0 so
\rho(\pc(\fp), c(J)) \le 8D^{s(J)}+8D^{\ps(\fp)} \le 16 D^{\ps(\fp) + s_1 + 2}.
There exists a tile \fq \in \fT(\fu_1). By forest1, it satisfies
\scI(\fq) \subsetneq \scI(\fu_1). Thus \scI(\fu_1) \notin \mathcal{J}'.
It follows that J \subsetneq \scI(\fu_1). By coverdyadic and
dyadicproperty, there exists a cube J' \in \mathcal{D} with
J \subset J' and s(J') = s(J) + 1. By definition of \mathcal{J}',
there exists a tile \fp' \in \fT(\fu_1) with
\scI(\fp') \subset B(c(J'), 100 D^{s(J') + 1}).
By the triangle inequality, the definition defineD and a \ge 4, we have
B(c(J'), 100 D^{s(J')+1}) \subset B(\pc(\fp), 128 D^{\ps(\fp) + s_1 + 2}).
Since \fp' \in \fT(\fu_1) and \scI(\fu_1) \subset \scI(\fu_2), we have
by forest5
d_{\fp'}(\fcc(\fp'), \fcc(\fu_2)) > 2^{Z(n+1)}.
Hence, by forest1, the triangle inequality and using that by defineZ
Z(n+1) = 2^{12a}(n+1) \ge 3
d_{\fp'}(\fcc(\fu_1), \fcc(\fu_2)) > 2^{Z(n+1)} - 4 \ge 2^{Z(n+1) - 1}.
It follows that
2^{Z(n+1)-1} \le d_{\fp'}(\fcc(\fu_1), \fcc(\fu_2)) \le d_{B(\pc(\fp), 128 D^{\ps(\fp) + s_1+ 2})}(\fcc(\fu_1), \fcc(\fu_2)).
Using firstdb, we obtain
\le 2^{9a + 100a^3 (s_1+3)} d_{\fp}(\fcc(\fu_1), \fcc(\fu_2)).
Since \fp' \notin \mathfrak{S} this is bounded by
\le 2^{9a + 100a^3 (s_1+3)} 2^{Zn/2}.
Thus
Z n/2 + Z - 1 \le 9a + 100a^3(s_1 + 3),
contradicting the definition of s_1.
For each J \in \mathcal{J}' and all s, we have
\frac{1}{\mu(J)} \int_J \Bigg(\sum_{\substack{I \in \mathcal{D}, s(I) = s(J) - s\\ I \cap \scI(\fu_1) = \emptyset\\ J \cap B(I) \ne \emptyset}} \mathbf{1}_{B(I)}\bigg)^2 \, \mathrm{d}\mu \le 2^{14a+1} (8 D^{-s})^\kappa.
Lean code for Lemma1.116●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/RemainingTiles.leancomplete
theorem TileStructure.Forest.square_function_count.{u_1}
TileStructure.Forest.square_function_count.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ : 𝔓 X} {J : Grid X} (hJ : J ∈ t.𝓙₆ u₁) {s' : ℤ} : ⨍⁻ (x : X) in ↑J, (∑ I with s I = s J - s' ∧ Disjoint ↑I ↑(𝓘 u₁) ∧ ¬Disjoint (↑J) (Metric.ball (c I) (8 * ↑(defaultD a) ^ s I)), (Metric.ball (c I) (8 * ↑(defaultD a) ^ s I)).indicator 1 x) ^ 2 ∂MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_6_4 a s')Lemma 7.6.4.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hJJ ∈ t.𝓙₆ u₁: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₆TileStructure.Forest.𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.6. We use a different notation to distinguish it from the 𝓙' used in Section 7.5u₁𝔓 X) {s'ℤ: ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} : ⨍⁻MeasureTheory.laverage.{u_1} {α : Type u_1} {m0 : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealAverage value of an `ℝ≥0∞`-valued function `f` w.r.t. a measure `μ`, denoted `⨍⁻ x, f x ∂μ`. It is equal to `(μ univ)⁻¹ * ∫⁻ x, f x ∂μ`, so it takes value zero if `μ` is an infinite measure. If `μ` is a probability measure, then the average of any function is equal to its integral. For the average on a set, use `⨍⁻ x in s, f x ∂μ`, defined as `⨍⁻ x, f x ∂(μ.restrict s)`. For the average w.r.t. the volume, one can omit `∂volume`.(xX: XType u_1) inMeasureTheory.laverage.{u_1} {α : Type u_1} {m0 : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealAverage value of an `ℝ≥0∞`-valued function `f` w.r.t. a measure `μ`, denoted `⨍⁻ x, f x ∂μ`. It is equal to `(μ univ)⁻¹ * ∫⁻ x, f x ∂μ`, so it takes value zero if `μ` is an infinite measure. If `μ` is a probability measure, then the average of any function is equal to its integral. For the average on a set, use `⨍⁻ x in s, f x ∂μ`, defined as `⨍⁻ x, f x ∂(μ.restrict s)`. For the average w.r.t. the volume, one can omit `∂volume`.↑JGrid X,MeasureTheory.laverage.{u_1} {α : Type u_1} {m0 : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealAverage value of an `ℝ≥0∞`-valued function `f` w.r.t. a measure `μ`, denoted `⨍⁻ x, f x ∂μ`. It is equal to `(μ univ)⁻¹ * ∫⁻ x, f x ∂μ`, so it takes value zero if `μ` is an infinite measure. If `μ` is a probability measure, then the average of any function is equal to its integral. For the average on a set, use `⨍⁻ x in s, f x ∂μ`, defined as `⨍⁻ x, f x ∂(μ.restrict s)`. For the average w.r.t. the volume, one can omit `∂volume`.(∑ IGrid Xwith ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤIGrid X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).s'ℤ∧And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be constructed and destructed like a pair: if `ha : a` and `hb : b` then `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`. Conventions for notations in identifiers: * The recommended spelling of `∧` in identifiers is `and`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.↑IGrid X↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X) ∧And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be constructed and destructed like a pair: if `ha : a` and `hb : b` then `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`. Conventions for notations in identifiers: * The recommended spelling of `∧` in identifiers is `and`.¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(↑JGrid X) (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XIGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤIGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.), (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XIGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤIGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ∂MeasureTheory.laverage.{u_1} {α : Type u_1} {m0 : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealAverage value of an `ℝ≥0∞`-valued function `f` w.r.t. a measure `μ`, denoted `⨍⁻ x, f x ∂μ`. It is equal to `(μ univ)⁻¹ * ∫⁻ x, f x ∂μ`, so it takes value zero if `μ` is an infinite measure. If `μ` is a probability measure, then the average of any function is equal to its integral. For the average on a set, use `⨍⁻ x in s, f x ∂μ`, defined as `⨍⁻ x, f x ∂(μ.restrict s)`. For the average w.r.t. the volume, one can omit `∂volume`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_6_4TileStructure.Forest.C7_6_4 (a : ℕ) (s : ℤ) : NNRealThe constant used in `square_function_count`.aℕs'ℤ)theorem TileStructure.Forest.square_function_count.{u_1}
TileStructure.Forest.square_function_count.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} {u₁ : 𝔓 X} {J : Grid X} (hJ : J ∈ t.𝓙₆ u₁) {s' : ℤ} : ⨍⁻ (x : X) in ↑J, (∑ I with s I = s J - s' ∧ Disjoint ↑I ↑(𝓘 u₁) ∧ ¬Disjoint (↑J) (Metric.ball (c I) (8 * ↑(defaultD a) ^ s I)), (Metric.ball (c I) (8 * ↑(defaultD a) ^ s I)).indicator 1 x) ^ 2 ∂MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_6_4 a s')Lemma 7.6.4.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {u₁𝔓 X: 𝔓𝔓.{u, u_1, u_2} {𝕜 : Type u_1} [RCLike 𝕜] (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : Type uXType u_1} {JGrid X: GridGrid.{u} (X : Type u) {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Type uThe indexing type of the grid structure. Elements are called (dyadic) cubes. Note that this type has instances for both `≤` and `⊆`, but they do *not* coincide.XType u_1} (hJJ ∈ t.𝓙₆ u₁: JGrid X∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.tTileStructure.Forest X n.𝓙₆TileStructure.Forest.𝓙₆.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (u₁ : 𝔓 X) : Set (Grid X)The definition `𝓙'` at the start of Section 7.6. We use a different notation to distinguish it from the 𝓙' used in Section 7.5u₁𝔓 X) {s'ℤ: ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} : ⨍⁻MeasureTheory.laverage.{u_1} {α : Type u_1} {m0 : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealAverage value of an `ℝ≥0∞`-valued function `f` w.r.t. a measure `μ`, denoted `⨍⁻ x, f x ∂μ`. It is equal to `(μ univ)⁻¹ * ∫⁻ x, f x ∂μ`, so it takes value zero if `μ` is an infinite measure. If `μ` is a probability measure, then the average of any function is equal to its integral. For the average on a set, use `⨍⁻ x in s, f x ∂μ`, defined as `⨍⁻ x, f x ∂(μ.restrict s)`. For the average w.r.t. the volume, one can omit `∂volume`.(xX: XType u_1) inMeasureTheory.laverage.{u_1} {α : Type u_1} {m0 : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealAverage value of an `ℝ≥0∞`-valued function `f` w.r.t. a measure `μ`, denoted `⨍⁻ x, f x ∂μ`. It is equal to `(μ univ)⁻¹ * ∫⁻ x, f x ∂μ`, so it takes value zero if `μ` is an infinite measure. If `μ` is a probability measure, then the average of any function is equal to its integral. For the average on a set, use `⨍⁻ x in s, f x ∂μ`, defined as `⨍⁻ x, f x ∂(μ.restrict s)`. For the average w.r.t. the volume, one can omit `∂volume`.↑JGrid X,MeasureTheory.laverage.{u_1} {α : Type u_1} {m0 : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealAverage value of an `ℝ≥0∞`-valued function `f` w.r.t. a measure `μ`, denoted `⨍⁻ x, f x ∂μ`. It is equal to `(μ univ)⁻¹ * ∫⁻ x, f x ∂μ`, so it takes value zero if `μ` is an infinite measure. If `μ` is a probability measure, then the average of any function is equal to its integral. For the average on a set, use `⨍⁻ x in s, f x ∂μ`, defined as `⨍⁻ x, f x ∂(μ.restrict s)`. For the average w.r.t. the volume, one can omit `∂volume`.(∑ IGrid Xwith ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤIGrid X=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤJGrid X-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).s'ℤ∧And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be constructed and destructed like a pair: if `ha : a` and `hb : b` then `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`. Conventions for notations in identifiers: * The recommended spelling of `∧` in identifiers is `and`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.↑IGrid X↑(𝓘𝓘.{u, u_1} {𝕜 : Type u_1} [RCLike 𝕜] {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [FunctionDistances 𝕜 X] {Q : MeasureTheory.SimpleFunc X (Θ X)} [PreTileStructure Q D κ S o] : 𝔓 X → Grid Xu₁𝔓 X) ∧And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be constructed and destructed like a pair: if `ha : a` and `hb : b` then `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`. Conventions for notations in identifiers: * The recommended spelling of `∧` in identifiers is `and`.¬Not (a : Prop) : Prop`Not p`, or `¬p`, is the negation of `p`. It is defined to be `p → False`, so if your goal is `¬p` you can use `intro h` to turn the goal into `h : p ⊢ False`, and if you have `hn : ¬p` and `h : p` then `hn h : False` and `(hn h).elim` will prove anything. For more information: [Propositional Logic](https://lean-lang.org/theorem_proving_in_lean4/propositions_and_proofs.html#propositional-logic) Conventions for notations in identifiers: * The recommended spelling of `¬` in identifiers is `not`.DisjointDisjoint.{u_1} {α : Type u_1} [PartialOrder α] [OrderBot α] (a b : α) : PropTwo elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.) Note that we define this without reference to `⊓`, as this allows us to talk about orders where the infimum is not unique, or where implementing `Inf` would require additional `Decidable` arguments.(↑JGrid X) (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XIGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤIGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.), (Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`(cc.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → XIGrid X) (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.8 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.↑(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.ss.{u} {X : Type u} {A : NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] {D : ℕ} {κ : ℝ} {S : ℕ} {o : X} [GridStructure X D κ S o] : Grid X → ℤIGrid X)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.).indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.1 xX) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ∂MeasureTheory.laverage.{u_1} {α : Type u_1} {m0 : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealAverage value of an `ℝ≥0∞`-valued function `f` w.r.t. a measure `μ`, denoted `⨍⁻ x, f x ∂μ`. It is equal to `(μ univ)⁻¹ * ∫⁻ x, f x ∂μ`, so it takes value zero if `μ` is an infinite measure. If `μ` is a probability measure, then the average of any function is equal to its integral. For the average on a set, use `⨍⁻ x in s, f x ∂μ`, defined as `⨍⁻ x, f x ∂(μ.restrict s)`. For the average w.r.t. the volume, one can omit `∂volume`.MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_6_4TileStructure.Forest.C7_6_4 (a : ℕ) (s : ℤ) : NNRealThe constant used in `square_function_count`.aℕs'ℤ)Lemma 7.6.4.
Proof. Since J \in \mathcal{J}' we have J \subset \scI(\fu_1). Thus, if
B(I) \cap J \ne \emptyset then
B(I) \cap J \subset \{x \in J \ : \ \rho(x, X \setminus J) \le 8D^{s(I)}\}.
Furthermore, for each s the balls B(I) with s(I) = s have bounded
overlap: Consider the collection \mathcal{D}_{s,x} of all
I \in \mathcal{D} with x \in B(I) and s(I) = s. By
eq-vol-sp-cube and dyadicproperty, the balls
B(c(I), \frac{1}{4} D^{s(I)}), I \in \mathcal{D}_{s,x} are disjoint, and
by the triangle inequality, they are contained in B(x, 9 D^{s}). By the
doubling property doublingx, we have
\mu(B(x, 9D^{s})) \le 2^{7a} \mu(B(c(I), \frac{1}{4} D^{s(I)}))
for each I \in \mathcal{D}_{s,x}.
Thus
\mu(B(x, 9D^{s})) \ge \sum_{I \in \mathcal{D}_{s,x}} \mu(B(c(I), \frac{1}{4} D^{s(I)})) \ge 2^{-7a} |\mathcal{D}_{s,x}| \mu(B(x, 9D^{s})).
Dividing by the positive \mu(B(x, 9D^{s})), we obtain that for each x
\Bigg(\sum_{\substack{I \in \mathcal{D}, s(I) = s(J) - s\\ I \cap \scI(\fu_1) = \emptyset\\ J \cap B(I) \ne \emptyset}} \mathbf{1}_{B(I)}(x) \bigg)^2 \le |\mathcal{D}_{s(J) - s,x}|^2 \le 2^{14a}.
Combining this with the previous inclusion and the small boundary property
eq-small-boundary, noting that 8D^{s(I)}=8D^{-s}D^{s(J)}, the lemma
follows.
Proof of Lemma 1.114. Expanding the definition of
P_{\mathcal{J}'}, we have
\|P_{\mathcal{J}'}|T_{\fT(\fu_2) \setminus \mathfrak{S}}^* g_2|\|_2
= \left(\sum_{J \in \mathcal{J}'} \frac{1}{\mu(J)} \left(\int_J \left| \sum_{\fp \in \fT(\fu_2) \setminus \mathfrak{S}} T_{\fp}^* g_2(y) \right| \, \mathrm{d}\mu(y) \right)^2 \right)^{1/2}.
By Lemma 1.95, the innermost sum in the last display is 0 if
J \cap B(\scI(\fp)) = \emptyset. Then we split that sum according to the
scale of \fp relative to the scale of J. By Lemma 1.115,
s_1 \le s(J) - \ps(\fp) \le 2S with
s_1 := \lfloor\frac{Zn}{202a^3} - 2\rfloor
= \left(\sum_{J \in \mathcal{J}'} \frac{1}{\mu(J)} \left(\int_J \left| \sum_{s=s_1}^{2S} \sum_{\substack{\fp \in \fT(\fu_2) \setminus \mathfrak{S}\\ \ps(\fp) = s(J) - s\\ J \cap B(\scI(\fp)) \ne \emptyset}} T_{\fp}^* g_2(y) \right| \, \mathrm{d}\mu(y) \right)^2 \right)^{1/2}.
Then we apply the triangle inequality and Minkowski's inequality to get
\le \sum_{s=s_1}^{2S} \left( \sum_{J \in \mathcal{J}'} \frac{1}{\mu(J)} \left(\int_J \sum_{\substack{\fp \in \fT(\fu_2) \setminus \mathfrak{S}\\ \ps(\fp) = s(J) - s\\ J \cap B(\scI(\fp)) \ne \emptyset}} |T_{\fp}^* g_2(y)| \, \mathrm{d}\mu(y) \right)^2\right)^{1/2}.
We have by Lemma 1.95 and eq-Ks-size
|T_{\fp}^* g_2(y)| \le 2^{102a^3} \mathbf{1}_{B(\pc(\fp), 8D^{\ps(\fp)})}(y) \int_{E(\fp)} \frac{1}{\mu(B(x, D^{\ps(\fp)}))} |g_2(x)| \, \mathrm{d}\mu(x).
Using the doubling property doublingx, it follows that
\mu(B(\pc(\fp), 8D^{\ps(\fp)})) \le 2^{4a} \mu(B(x, D^{\ps(\fp)})).
Thus, using also a \ge 4
|T_{\fp}^* g_2(y)| \le 2^{102a^3+4a} \mathbf{1}_{B(\pc(\fp), 8D^{\ps(\fp)})}(y) \frac{1}{\mu(B(\pc(\fp), 8D^{\ps(\fp)}))} \int_{E(\fp)} |g_2(x)| \, \mathrm{d}\mu(x).
Since for each I \in \mathcal{D} the sets E(\fp), \fp \in \fP(I) are
disjoint, it follows that
\int_J \sum_{\substack{\fp \in \fT(\fu_2) \setminus \mathfrak{S}\\ \scI(\fp) = I\\ J \cap B(\scI(\fp)) \ne \emptyset}} |T_{\fp}^* g_2(y)| \, \mathrm{d}\mu
\le 2^{102a^3+4a} \int_J \mathbf{1}_{B(I)} \frac{1}{\mu(B(\pc(\fp), 8D^{\ps(\fp)}))} \int_{B(\pc(\fp), 8D^{\ps(\fp)})} |g_2(x)| \, \mathrm{d}\mu(x)
\le 2^{102a^3+4a} \int_J M_{\mathcal{B},1} |g_2|(y) \mathbf{1}_{B(I)}(y) \, \mathrm{d}\mu(y).
By Lemma 1.101, we have
\scI(\fp) \cap \scI(\fu_1) = \emptyset for all
\fp \in \fT(\fu_2) \setminus \mathfrak{S}. Thus we can estimate
eq-sep-tree-small-1 by
2^{102a^3+4a} \sum_{s=s_1}^{2S} \left( \sum_{J \in \mathcal{J}'} \frac{1}{\mu(J)} \left(\int_J \sum_{\substack{I \in \mathcal{D}, s(I) = s(J) - s\\ I \cap \scI(\fu_1) = \emptyset\\ J \cap B(I) \ne \emptyset}} M_{\mathcal{B},1} |g_2| \mathbf{1}_{B(I)} \, \mathrm{d}\mu \right)^2\right)^{1/2}\,,
which is by Cauchy-Schwarz at most
2^{102a^3+4a} \sum_{s=s_1}^{2S} \left( \sum_{J \in \mathcal{J}'} \int_J ( M_{\mathcal{B},1} |g_2|)^2 \, \mathrm{d}\mu \times \frac{1}{\mu(J)} \int_J \left(\sum_{\substack{I \in \mathcal{D}, s(I) = s(J) - s\\ I \cap \scI(\fu_1) = \emptyset\\ J \cap B(I) \ne \emptyset}} \mathbf{1}_{B(I)}\right)^2 \, \mathrm{d}\mu \right)^{1/2}.
Using Lemma 1.116, we bound this by
2^{102a^3+4a} \sum_{s=s_1}^{2S} \left(2^{14a+1} (8 D^{-s})^\kappa \sum_{J \in \mathcal{J}'} \int_J (M_{\mathcal{B},1} |g_2|)^2\right)^{1/2},
and since dyadic cubes in \mathcal{J}' form a partition of \scI(\fu_1)
by Lemma 1.113, \kappa \le 1 by definekappa, and a \ge 4
\le 2^{102a^3+11a+2} \sum_{s=s_1}^{2S} D^{-s\kappa/2} \|\mathbf{1}_{\scI(\fu_1)} M_{\mathcal{B},1} |g_2|\|_2
\le 2^{102a^3+11a+2} D^{-s_1 \kappa /2} \frac{1}{1 - D^{-\kappa/2}} \|\mathbf{1}_{\scI(\fu_1)} M_{\mathcal{B},1} |g_2|\|_2.
By convexity of t \mapsto D^{-t} and since D \ge 2, we have for all
0 \le t \le 1
D^{-t} \le 1 - t(1 - 1/D) \le 1 - \frac{1}{2}t.
Using this for t = \kappa/2 and using that
s_1 = \frac{Zn}{202a^3} - 2 and the definitions defineD and
definekappa of \kappa and D
\le 2^{102a^3+11a+2} 2^{-100a^2(\frac{Zn}{202a^3} - 3) \frac{\kappa}{2}} \frac{2}{\kappa} \|\mathbf{1}_{\scI(\fu_1)} M_{\mathcal{B},1} |g_2|\|_2
= 2^{102a^3+21a+4} 2^{150a^2\kappa} 2^{-\frac{100}{404a}Zn\kappa} \|\mathbf{1}_{\scI(\fu_1)} M_{\mathcal{B},1} |g_2|\|_2.
Using the definition definekappa of \kappa and a \ge 4, the lemma
follows.
1.5.17. Forests
In this subsection, we complete the proof of Theorem 1.7 from the results of the previous subsections.
Define an n-row to be an n-forest (\fU, \fT), i.e. satisfying
conditions forest1 - forest6, such that in addition the sets
\scI(\fu), \fu \in \fU are pairwise disjoint.
-
TileStructure.Forest.rowDecomp[complete] -
TileStructure.Forest.biUnion_rowDecomp[complete] -
TileStructure.Forest.pairwiseDisjoint_rowDecomp[complete]
Let (\fU, \fT) be an n-forest. Then there exists a decomposition
\fU = \dot{\bigcup_{1 \le j \le 2^n}} \fU_j
such that for all j = 1, \dotsc, 2^n the pair
(\fU_j, \fT|_{\fU_j}) is an n-row.
Lean code for Lemma1.117●3 declarations
Associated Lean declarations
-
TileStructure.Forest.rowDecomp[complete]
-
TileStructure.Forest.biUnion_rowDecomp[complete]
-
TileStructure.Forest.pairwiseDisjoint_rowDecomp[complete]
-
TileStructure.Forest.rowDecomp[complete] -
TileStructure.Forest.biUnion_rowDecomp[complete] -
TileStructure.Forest.pairwiseDisjoint_rowDecomp[complete]
-
defdefined in Carleson/ForestOperator/Forests.leancomplete
def TileStructure.Forest.rowDecomp.{u_1}
TileStructure.Forest.rowDecomp.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) : TileStructure.Row X nThe row-decomposition of a tree, defined in the proof of Lemma 7.7.1. The indexing is off-by-one compared to the blueprint.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} (tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ) (jℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) : TileStructure.RowTileStructure.Row.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-rowXType u_1nℕdef TileStructure.Forest.rowDecomp.{u_1}
TileStructure.Forest.rowDecomp.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) : TileStructure.Row X nThe row-decomposition of a tree, defined in the proof of Lemma 7.7.1. The indexing is off-by-one compared to the blueprint.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} (tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ) (jℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) : TileStructure.RowTileStructure.Row.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-rowXType u_1nℕThe row-decomposition of a tree, defined in the proof of Lemma 7.7.1. The indexing is off-by-one compared to the blueprint.
-
theoremdefined in Carleson/ForestOperator/Forests.leancomplete
theorem TileStructure.Forest.biUnion_rowDecomp.{u_1}
TileStructure.Forest.biUnion_rowDecomp.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} : ⋃ j, ⋃ (_ : j < 2 ^ n), (t.rowDecomp j).𝔘 = t.𝔘Part of Lemma 7.7.1{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} : ⋃ jℕ, ⋃ (_ : jℕ<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.nℕ), (tTileStructure.Forest X n.rowDecompTileStructure.Forest.rowDecomp.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) : TileStructure.Row X nThe row-decomposition of a tree, defined in the proof of Lemma 7.7.1. The indexing is off-by-one compared to the blueprint.jℕ).𝔘TileStructure.Forest.𝔘.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : Set (𝔓 X)=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.tTileStructure.Forest X n.𝔘TileStructure.Forest.𝔘.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : Set (𝔓 X)theorem TileStructure.Forest.biUnion_rowDecomp.{u_1}
TileStructure.Forest.biUnion_rowDecomp.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} : ⋃ j, ⋃ (_ : j < 2 ^ n), (t.rowDecomp j).𝔘 = t.𝔘Part of Lemma 7.7.1{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} : ⋃ jℕ, ⋃ (_ : jℕ<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.nℕ), (tTileStructure.Forest X n.rowDecompTileStructure.Forest.rowDecomp.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) : TileStructure.Row X nThe row-decomposition of a tree, defined in the proof of Lemma 7.7.1. The indexing is off-by-one compared to the blueprint.jℕ).𝔘TileStructure.Forest.𝔘.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : Set (𝔓 X)=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.tTileStructure.Forest X n.𝔘TileStructure.Forest.𝔘.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : Set (𝔓 X)Part of Lemma 7.7.1
-
theoremdefined in Carleson/ForestOperator/Forests.leancomplete
theorem TileStructure.Forest.pairwiseDisjoint_rowDecomp.{u_1}
TileStructure.Forest.pairwiseDisjoint_rowDecomp.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} : (Set.Iio (2 ^ n)).PairwiseDisjoint fun x ↦ (t.rowDecomp x).𝔘Part of Lemma 7.7.1{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} : (Set.IioSet.Iio.{u_1} {α : Type u_1} [Preorder α] (b : α) : Set α`Iio b` is the left-infinite right-open interval $(-∞, b)$.(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.nℕ)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.fun xℕ↦ (tTileStructure.Forest X n.rowDecompTileStructure.Forest.rowDecomp.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) : TileStructure.Row X nThe row-decomposition of a tree, defined in the proof of Lemma 7.7.1. The indexing is off-by-one compared to the blueprint.xℕ).𝔘TileStructure.Forest.𝔘.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : Set (𝔓 X)theorem TileStructure.Forest.pairwiseDisjoint_rowDecomp.{u_1}
TileStructure.Forest.pairwiseDisjoint_rowDecomp.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} : (Set.Iio (2 ^ n)).PairwiseDisjoint fun x ↦ (t.rowDecomp x).𝔘Part of Lemma 7.7.1{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} : (Set.IioSet.Iio.{u_1} {α : Type u_1} [Preorder α] (b : α) : Set α`Iio b` is the left-infinite right-open interval $(-∞, b)$.(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.nℕ)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.fun xℕ↦ (tTileStructure.Forest X n.rowDecompTileStructure.Forest.rowDecomp.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) : TileStructure.Row X nThe row-decomposition of a tree, defined in the proof of Lemma 7.7.1. The indexing is off-by-one compared to the blueprint.xℕ).𝔘TileStructure.Forest.𝔘.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : Set (𝔓 X)Part of Lemma 7.7.1
Proof. Define recursively \fU_j to be a maximal disjoint set of tiles
\fu in
\fU \setminus \bigcup_{j' < j} \fU_{j'}
with inclusion maximal \scI(\fu). Properties forest1, -forest6 for
(\fU_j, \fT|_{\fU_k}) follow immediately from the corresponding properties
for (\fU, \fT), and the cubes \scI(\fu), \fu \in \fU_j are disjoint
by definition. The collections \fU_j are also disjoint by definition.
Now we show by induction on j that each point is contained in at most
2^n - j cubes \scI(\fu) with
\fu \in \fU \setminus \bigcup_{j' \le j} \fU_{j'}. This implies that
\bigcup_{j = 1}^{2^n} \fU_j = \fU, which completes the proof of the Lemma.
For j = 0 each point is contained in at most 2^n cubes by forest3. For
larger j, if x is contained in any cube \scI(\fu) with
\fu \in \fU \setminus \bigcup_{j' < j} \fU_{j'}, then it is contained in a
maximal such cube. Thus it is contained in a cube in \scI(\fu) with
\fu \in \fU_j. Thus the number
\fu \in \fU \setminus \bigcup_{j' \le j} \fU_{j'} with
x\in \scI(\fu) is zero, or is less than the number of
\fu \in \fU \setminus \bigcup_{j' \le j-1} \fU_{j'} with
x \in \scI(\fu) by at least one.
We pick a decomposition of the forest (\fU, \fT) into 2^n n-rows
(\fU_j, \fT_j) := (\fU_j, \fT|_{\fU_j})
as in Lemma 1.117. To save some space in the proofs of the
remaining lemmas in this section we will write
T_{\fC} = \sum_{\fp \in \fC} T_{\fp},\qquad T_{\fC}^* = \sum_{\fp \in \fC} T_{\fp}^*,
T_{\mathfrak{R}_j} = \sum_{\fu \in \fU_j} T_{\fT(\fu)},\qquad T_{\mathfrak{R}_j}^* = \sum_{\fu \in \fU_j} T_{\fT(\fu)}^*.
-
TileStructure.Forest.row_bound[complete] -
TileStructure.Forest.indicator_row_bound[complete]
Uses Lemma 1.95 and Lemma 1.96.
For each 1 \le j \le 2^n and each bounded g supported on G we have
\left\| T_{\mathfrak{R}_j}^*g \right\|_2 \le 2^{182a^3} 2^{-n/2} \|g\|_2
and
\left\| \mathbf{1}_F T_{\mathfrak{R}_j}^*g \right\|_2 \le 2^{283a^3} 2^{-n/2} \dens_2(\bigcup_{\fu\in \fU}\fT(\fu))^{1/2} \|g\|_2.
Lean code for Lemma1.118●2 theorems
Associated Lean declarations
-
TileStructure.Forest.row_bound[complete]
-
TileStructure.Forest.indicator_row_bound[complete]
-
TileStructure.Forest.row_bound[complete] -
TileStructure.Forest.indicator_row_bound[complete]
-
theoremdefined in Carleson/ForestOperator/Forests.leancomplete
theorem TileStructure.Forest.row_bound.{u_1}
TileStructure.Forest.row_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n j : ℕ} {t : TileStructure.Forest X n} {g : X → ℂ} (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) : MeasureTheory.eLpNorm (t.adjointCarlesonRowSum j g) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_7_2_1 a n) * MeasureTheory.eLpNorm g 2 MeasureTheory.volume{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(tTileStructure.Forest X n.adjointCarlesonRowSumTileStructure.Forest.adjointCarlesonRowSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) (f : X → ℂ) (x : X) : ℂThe definition of `T_{ℜ_j}*f(x)`, defined above Lemma 7.7.2.jℕgX → ℂ) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_7_2_1TileStructure.Forest.C7_7_2_1 (a n : ℕ) : NNRealThe constant used in `row_bound`. Has value `2 ^ (182 * a ^ 3 - n / 2)` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.row_bound.{u_1}
TileStructure.Forest.row_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n j : ℕ} {t : TileStructure.Forest X n} {g : X → ℂ} (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) : MeasureTheory.eLpNorm (t.adjointCarlesonRowSum j g) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_7_2_1 a n) * MeasureTheory.eLpNorm g 2 MeasureTheory.volume{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(tTileStructure.Forest X n.adjointCarlesonRowSumTileStructure.Forest.adjointCarlesonRowSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) (f : X → ℂ) (x : X) : ℂThe definition of `T_{ℜ_j}*f(x)`, defined above Lemma 7.7.2.jℕgX → ℂ) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_7_2_1TileStructure.Forest.C7_7_2_1 (a n : ℕ) : NNRealThe constant used in `row_bound`. Has value `2 ^ (182 * a ^ 3 - n / 2)` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`. -
theoremdefined in Carleson/ForestOperator/Forests.leancomplete
theorem TileStructure.Forest.indicator_row_bound.{u_1}
TileStructure.Forest.indicator_row_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n j : ℕ} {t : TileStructure.Forest X n} {g : X → ℂ} (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) : MeasureTheory.eLpNorm (F.indicator (t.adjointCarlesonRowSum j g)) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_7_2_2 a n) * dens₂ (⋃ u ∈ t, (fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * MeasureTheory.eLpNorm g 2 MeasureTheory.volume{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointCarlesonRowSumTileStructure.Forest.adjointCarlesonRowSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) (f : X → ℂ) (x : X) : ℂThe definition of `T_{ℜ_j}*f(x)`, defined above Lemma 7.7.2.jℕgX → ℂ)) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_7_2_2TileStructure.Forest.C7_7_2_2 (a n : ℕ) : NNRealThe constant used in `indicator_row_bound`. Has value `2 ^ (283 * a ^ 3 - n / 2)` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₂dens₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.(⋃ u𝔓 X∈ tTileStructure.Forest X n, (fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.indicator_row_bound.{u_1}
TileStructure.Forest.indicator_row_bound.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n j : ℕ} {t : TileStructure.Forest X n} {g : X → ℂ} (hg : MeasureTheory.BoundedCompactSupport g MeasureTheory.volume) (h2g : Function.support g ⊆ G) : MeasureTheory.eLpNorm (F.indicator (t.adjointCarlesonRowSum j g)) 2 MeasureTheory.volume ≤ ↑(TileStructure.Forest.C7_7_2_2 a n) * dens₂ (⋃ u ∈ t, (fun x ↦ t.𝔗 x) u) ^ 2⁻¹ * MeasureTheory.eLpNorm g 2 MeasureTheory.volume{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕjℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {gX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hgMeasureTheory.BoundedCompactSupport g MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsgX → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (h2gFunction.support g ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.gX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.(FSet X.indicatorSet.indicator.{u_1, u_3} {α : Type u_1} {M : Type u_3} [Zero M] (s : Set α) (f : α → M) (x : α) : M`Set.indicator s f a` is `f a` if `a ∈ s`, `0` otherwise.(tTileStructure.Forest X n.adjointCarlesonRowSumTileStructure.Forest.adjointCarlesonRowSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) (f : X → ℂ) (x : X) : ℂThe definition of `T_{ℜ_j}*f(x)`, defined above Lemma 7.7.2.jℕgX → ℂ)) 2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_7_2_2TileStructure.Forest.C7_7_2_2 (a n : ℕ) : NNRealThe constant used in `indicator_row_bound`. Has value `2 ^ (283 * a ^ 3 - n / 2)` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.dens₂dens₂.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (𝔓' : Set (𝔓 X)) : ENNRealThis density is defined to live in `ℝ≥0∞`. Use `ENNReal.toReal` to get a real number.(⋃ u𝔓 X∈ tTileStructure.Forest X n, (fun x𝔓 X↦ tTileStructure.Forest X n.𝔗TileStructure.Forest.𝔗.{u_1} {X : Type u_1} [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (self : TileStructure.Forest X n) : 𝔓 X → Set (𝔓 X)The value of `𝔗 u` only matters when `u ∈ 𝔘`.x𝔓 X) u𝔓 X) ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2⁻¹Inv.inv.{u} {α : Type u} [self : Inv α] : α → α`a⁻¹` computes the inverse of `a`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `⁻¹` in identifiers is `inv`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.gX → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.
Proof. Since for each j the top cubes \scI(\fu), \fu \in \fU_j are
disjoint, we have for all bounded g supported on G by
Lemma 1.95
\left\|\mathbf{1}_F \sum_{\fu \in \fU_j} \sum_{\fp \in \fT(\fu)} T_{\fp}^* g\right\|_2^2 = \left\|\mathbf{1}_F \sum_{\fu \in \fU_j} \sum_{\fp \in \fT(\fu)} \mathbf{1}_{\scI(\fu)} T_{\fp}^* \mathbf{1}_{\scI(\fu)} g\right\|_2^2
= \sum_{\fu \in \fU_j} \int_{\scI(\fu)} \left| \mathbf{1}_F \sum_{\fp \in \fT(\fu)} T_{\fp}^* \mathbf{1}_{\scI(\fu)} g\right|^2 \, \mathrm{d}\mu \le \sum_{\fu \in \fU_j} \left\|\mathbf{1}_F \sum_{\fp \in \fT(\fu)} T_{\fp}^* \mathbf{1}_G \mathbf{1}_{\scI(\fu)} g\right\|_2^2.
Applying Lemma 1.96 and the density assumption forest4, then
taking square roots, we obtain
\left\| \mathbf{1}_F T_{\mathfrak{R}_j}^*g \right\|_2 \le 2^{282a^3} 2^{(4a+1-n)/2} \dens_2(\bigcup_{\fu\in \fU}\fT(\fu))^{1/2} \left( \sum_{\fu \in \fU_j} \left\| \mathbf{1}_{\scI(\fu)} g\right\|_2^2 \right)^{1/2}.
Again by disjointedness of the cubes \scI(\fu), this is estimated by
2^{282a^3} 2^{(4a+1-n)/2} \dens_2(\bigcup_{\fu\in \fU}\fT(\fu))^{1/2} \|g\|_2.
Thus eq-row-bound-2 follows, since a \ge 4. The proof of
eq-row-bound-1 is the same up to replacing F by X.
-
TileStructure.Forest.row_correlation[complete]
Uses Lemma 1.97 and Lemma 1.98.
For all 1 \le j,j' \le 2^n with j\ne j' and for all bounded
g_1, g_2 supported on G, it holds that
\left| \int T_{\mathfrak{R}_j}^*g_1 \overline{T_{\mathfrak{R}_{j'}}^*g_2} \, \mathrm{d}\mu \right| \le 2^{876a^3-4n}\|g_1\|_2 \|g_2\|_2.
Lean code for Lemma1.119●1 theorem
Associated Lean declarations
-
TileStructure.Forest.row_correlation[complete]
-
TileStructure.Forest.row_correlation[complete]
-
theoremdefined in Carleson/ForestOperator/Forests.leancomplete
theorem TileStructure.Forest.row_correlation.{u_1}
TileStructure.Forest.row_correlation.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n j j' : ℕ} {t : TileStructure.Forest X n} {f₁ f₂ : X → ℂ} (lj : j < 2 ^ n) (lj' : j' < 2 ^ n) (hn : j ≠ j') (hf₁ : MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume) (nf₁ : Function.support f₁ ⊆ G) (hf₂ : MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume) (nf₂ : Function.support f₂ ⊆ G) : ‖∫ (x : X), t.adjointCarlesonRowSum j f₁ x * (starRingEnd ℂ) (t.adjointCarlesonRowSum j' f₂ x)‖ₑ ≤ ↑(TileStructure.Forest.C7_7_3 a n) * MeasureTheory.eLpNorm f₁ 2 MeasureTheory.volume * MeasureTheory.eLpNorm f₂ 2 MeasureTheory.volumeLemma 7.7.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕjℕj'ℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {f₁X → ℂf₂X → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (ljj < 2 ^ n: jℕ<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.nℕ) (lj'j' < 2 ^ n: j'ℕ<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.nℕ) (hnj ≠ j': jℕ≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.j'ℕ) (hf₁MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₁X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (nf₁Function.support f₁ ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.f₁X → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) (hf₂MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₂X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (nf₂Function.support f₂ ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.f₂X → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraltTileStructure.Forest X n.adjointCarlesonRowSumTileStructure.Forest.adjointCarlesonRowSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) (f : X → ℂ) (x : X) : ℂThe definition of `T_{ℜ_j}*f(x)`, defined above Lemma 7.7.2.jℕf₁X → ℂxX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (tTileStructure.Forest X n.adjointCarlesonRowSumTileStructure.Forest.adjointCarlesonRowSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) (f : X → ℂ) (x : X) : ℂThe definition of `T_{ℜ_j}*f(x)`, defined above Lemma 7.7.2.j'ℕf₂X → ℂxX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_7_3TileStructure.Forest.C7_7_3 (a n : ℕ) : NNRealThe constant used in `row_correlation`. Has value `2 ^ (876 * a ^ 3 - 4 * n)` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.f₁X → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.f₂X → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.theorem TileStructure.Forest.row_correlation.{u_1}
TileStructure.Forest.row_correlation.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n j j' : ℕ} {t : TileStructure.Forest X n} {f₁ f₂ : X → ℂ} (lj : j < 2 ^ n) (lj' : j' < 2 ^ n) (hn : j ≠ j') (hf₁ : MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume) (nf₁ : Function.support f₁ ⊆ G) (hf₂ : MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume) (nf₂ : Function.support f₂ ⊆ G) : ‖∫ (x : X), t.adjointCarlesonRowSum j f₁ x * (starRingEnd ℂ) (t.adjointCarlesonRowSum j' f₂ x)‖ₑ ≤ ↑(TileStructure.Forest.C7_7_3 a n) * MeasureTheory.eLpNorm f₁ 2 MeasureTheory.volume * MeasureTheory.eLpNorm f₂ 2 MeasureTheory.volumeLemma 7.7.3.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕjℕj'ℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} {f₁X → ℂf₂X → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (ljj < 2 ^ n: jℕ<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.nℕ) (lj'j' < 2 ^ n: j'ℕ<LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.nℕ) (hnj ≠ j': jℕ≠Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`, and asserts that `a` and `b` are not equal. Conventions for notations in identifiers: * The recommended spelling of `≠` in identifiers is `ne`.j'ℕ) (hf₁MeasureTheory.BoundedCompactSupport f₁ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₁X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (nf₁Function.support f₁ ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.f₁X → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) (hf₂MeasureTheory.BoundedCompactSupport f₂ MeasureTheory.volume: MeasureTheory.BoundedCompactSupportMeasureTheory.BoundedCompactSupport.{u_1, u_2} {X : Type u_1} {E : Type u_2} [TopologicalSpace X] [MeasurableSpace X] [TopologicalSpace E] [ENorm E] [Zero E] (f : X → E) (μ : MeasureTheory.Measure X := by volume_tac) : PropBounded compactly supported measurable functionsf₂X → ℂMeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.) (nf₂Function.support f₂ ⊆ G: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.f₂X → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.GSet X) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.∫MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integral(xX: XType u_1),MeasureTheory.integral.{u_6, u_7} {α : Type u_6} {G : Type u_7} [NormedAddCommGroup G] [NormedSpace ℝ G] {x✝ : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → G) : GThe Bochner integraltTileStructure.Forest X n.adjointCarlesonRowSumTileStructure.Forest.adjointCarlesonRowSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) (f : X → ℂ) (x : X) : ℂThe definition of `T_{ℜ_j}*f(x)`, defined above Lemma 7.7.2.jℕf₁X → ℂxX*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(starRingEndstarRingEnd.{u} (R : Type u) [CommSemiring R] [StarRing R] : R →+* R`star` as a ring endomorphism, for commutative `R`. This is used to denote complex conjugation, and is available under the notation `conj` in the scope `ComplexConjugate`. Note that this is the preferred form (over `starRingAut`, available under the same hypotheses) because the notation `E →ₗ⋆[R] F` for an `R`-conjugate-linear map (short for `E →ₛₗ[starRingEnd R] F`) does not pretty-print if there is a coercion involved, as would be the case for `(↑starRingAut : R →* R)`.ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) (tTileStructure.Forest X n.adjointCarlesonRowSumTileStructure.Forest.adjointCarlesonRowSum.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) (f : X → ℂ) (x : X) : ℂThe definition of `T_{ℜ_j}*f(x)`, defined above Lemma 7.7.2.j'ℕf₂X → ℂxX)‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.↑(TileStructure.Forest.C7_7_3TileStructure.Forest.C7_7_3 (a n : ℕ) : NNRealThe constant used in `row_correlation`. Has value `2 ^ (876 * a ^ 3 - 4 * n)` in the blueprint.aℕnℕ) *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.f₁X → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.f₂X → ℂ2 MeasureTheory.volumeMeasureTheory.MeasureSpace.volume.{u_6} {α : Type u_6} [self : MeasureTheory.MeasureSpace α] : MeasureTheory.Measure α`volume` is the canonical measure on `α`.Lemma 7.7.3.
Proof. We have by Lemma 1.95 and the triangle inequality that
\left| \int T_{\mathfrak{R}_j}^*g_1 \overline{T_{\mathfrak{R}_{j'}}^*g_2} \, \mathrm{d}\mu \right|
\le \sum_{\fu \in \fU_j} \sum_{\fu' \in \fU_{j'}} \left| \int T^*_{\fT_j(\fu)} (\mathbf{1}_{\scI(\fu)} g_1) \overline{T^*_{\fT_{j'}(\fu')} (\mathbf{1}_{\scI(\fu')} g_2)} \, \mathrm{d}\mu \right|.
By Lemma 1.98, this is bounded by
2^{512a^3-4n} \sum_{\fu \in \fU_j} \sum_{\fu' \in \fU_{j'}} \|S_{2,\fu} (\mathbf{1}_{\scI(\fu)}g_1)\|_{L^2(\scI(\fu')\cap \scI(\fu)} \|S_{2, \fu'} (\mathbf{1}_{\scI(\fu')}g_2)\|_{L^2(\scI(\fu')\cap\scI(\fu))}.
We apply the Cauchy-Schwarz inequality in the form
\sum_{i \in M} a_i b_i \le (\sum_{i \in M} a_i^2 )^{1/2}(\sum_{i \in M} b_i^2 )^{1/2}
to the outer two sums:
\le 2^{512a^3-4n} \left(\sum_{\fu \in \fU_j} \sum_{\fu' \in \fU_{j'}} \|S_{2,\fu} (\mathbf{1}_{\scI(\fu)}g_1)\|_{L^2(\scI(\fu')\cap \scI(\fu))}^2 \right)^{1/2}
\left(\sum_{\fu \in \fU_j} \sum_{\fu' \in \fU_{j'}} \|S_{2,\fu'} (\mathbf{1}_{\scI(\fu')}g_2)\|_{L^2(\scI(\fu')\cap\scI(\fu))}^2 \right)^{1/2}.
We can now estimate the factor involving g_1 as follows:
\sum_{\fu \in \fU_j}\sum_{\fu' \in \fU_{j'}} \|S_{2,\fu} (\mathbf{1}_{\scI(\fu)}g_1)\|_{L^2(\scI(\fu')\cap \scI(\fu))}^2
= \sum_{\fu \in \fU_j}\sum_{\fu' \in \fU_{j'}} \int_{\scI(\fu) \cap \scI(\fu')} |S_{2,\fu} (\mathbf{1}_{\scI(\fu)}(y)g_1(y))|^2 \, \mathrm{d}\mu(y).
By pairwise disjointedness of the sets \scI(\fu') for \fu' \in \fU_{j'},
we have
\le \sum_{\fu \in \fU_j}\int_{\scI(\fu)} |S_{2,\fu} (\mathbf{1}_{\scI(\fu)}(y)g_1(y))|^2 \, \mathrm{d}\mu(y) \le \sum_{\fu \in \fU_j}\int_{X} |S_{2,\fu} (\mathbf{1}_{\scI(\fu)}(y)g_1(y))|^2 \, \mathrm{d}\mu(y)
= \sum_{\fu \in \fU_j}\|S_{2,\fu} (\mathbf{1}_{\scI(\fu)}g_1)\|_2^2.
By Lemma 1.97 we now estimate:
\le \sum_{\fu \in \fU_j}(2^{182a^3})^2 \|\mathbf{1}_{\scI(\fu)}g_1\|_2^2.
By pairwise disjointedness of the sets \scI(\fu) for \fu \in \fU_j
(and writing out the definition of L^2-norms), we have
\le (2^{182a^3})^2 \|g_1\|_2^2.
Arguing similarly for g_2, we obtain the desired inequality.
Define for 1 \le j \le 2^n
E_j := \bigcup_{\fu \in \fU_j} \bigcup_{\fp \in \fT(\fu)} E(\fp).
The sets E_j, 1 \le j \le 2^n are pairwise disjoint.
Lean code for Lemma1.120●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ForestOperator/Forests.leancomplete
theorem TileStructure.Forest.pairwiseDisjoint_rowSupport.{u_1}
TileStructure.Forest.pairwiseDisjoint_rowSupport.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} : (Set.Iio (2 ^ n)).PairwiseDisjoint t.rowSupportLemma 7.7.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} : (Set.IioSet.Iio.{u_1} {α : Type u_1} [Preorder α] (b : α) : Set α`Iio b` is the left-infinite right-open interval $(-∞, b)$.(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.nℕ)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.tTileStructure.Forest X n.rowSupportTileStructure.Forest.rowSupport.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) : Set XThe definition of `Eⱼ` defined above Lemma 7.7.4.theorem TileStructure.Forest.pairwiseDisjoint_rowSupport.{u_1}
TileStructure.Forest.pairwiseDisjoint_rowSupport.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} {t : TileStructure.Forest X n} : (Set.Iio (2 ^ n)).PairwiseDisjoint t.rowSupportLemma 7.7.4{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] [TileStructureTileStructure.{u} {X : Type u} {A : outParam NNReal} [PseudoMetricSpace X] [MeasureTheory.DoublingMeasure X A] [FunctionDistances ℝ X] (Q : outParam (MeasureTheory.SimpleFunc X (Θ X))) (D : outParam ℕ) (κ : outParam ℝ) (S : outParam ℕ) (o : outParam X) : Type (u + 1)A tile structure.QProofData.Q.{u_1} {X : Type u_1} {a : outParam ℕ} {q : outParam ℝ} {K : outParam (X → X → ℂ)} {σ₁ σ₂ : outParam (X → ℤ)} {F G : outParam (Set X)} {inst✝ : PseudoMetricSpace X} [self : ProofData a q K σ₁ σ₂ F G] : MeasureTheory.SimpleFunc X (Θ X)(defaultDdefaultD (a : ℕ) : ℕThe constant `D` from (2.0.1).aℕ) (defaultκdefaultκ (a : ℕ) : ℝThe constant `κ` from (2.0.2).aℕ) (defaultSdefaultS.{u_1} (X : Type u_1) {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [PseudoMetricSpace X] [ProofData a q K σ₁ σ₂ F G] : ℕXType u_1) (cancelPtcancelPt.{u_1, u_2} {𝕜 : Type u_1} (X : Type u_2) {A : ℕ} [RCLike 𝕜] [PseudoMetricSpace X] [CompatibleFunctions 𝕜 X A] : XThe point `o` in the blueprintXType u_1)] {nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {tTileStructure.Forest X n: TileStructure.ForestTileStructure.Forest.{u_1} (X : Type u_1) [PseudoMetricSpace X] {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] (n : ℕ) : Type u_1An `n`-forestXType u_1nℕ} : (Set.IioSet.Iio.{u_1} {α : Type u_1} [Preorder α] (b : α) : Set α`Iio b` is the left-infinite right-open interval $(-∞, b)$.(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.nℕ)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.).PairwiseDisjointSet.PairwiseDisjoint.{u_1, u_4} {α : Type u_1} {ι : Type u_4} [PartialOrder α] [OrderBot α] (s : Set ι) (f : ι → α) : PropA set is `PairwiseDisjoint` under `f`, if the images of any distinct two elements under `f` are disjoint. `s.Pairwise Disjoint` is (definitionally) the same as `s.PairwiseDisjoint id`. We prefer the latter in order to allow dot notation on `Set.PairwiseDisjoint`, even though the former unfolds more nicely.tTileStructure.Forest X n.rowSupportTileStructure.Forest.rowSupport.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] [TileStructure Q (defaultD a) (defaultκ a) (defaultS X) (cancelPt X)] {n : ℕ} (t : TileStructure.Forest X n) (j : ℕ) : Set XThe definition of `Eⱼ` defined above Lemma 7.7.4.Lemma 7.7.4
Proof. Suppose that \fp \in \fT(\fu) and \fp' \in \fT(\fu') with
\fu \ne \fu' and x \in E(\fp) \cap E(\fp'). Suppose without loss of
generality that \ps(\fp) \le \ps(\fp'). Then
x \in \scI(\fp) \cap \scI(\fp') \subset \scI(\fu'). By dyadicproperty it
follows that \scI(\fp) \subset \scI(\fu'). By forest5, it follows that
d_{\fp}(\fcc(\fp), \fcc(\fu')) > 2^{Z(n+1)}.
By the triangle inequality. Lemma 1.11 and forest1 it follows
that
d_{\fp}(\fcc(\fp), \fcc(\fp')) \ge d_{\fp}(\fcc(\fp), \fcc(\fu')) - d_{\fp}(\fcc(\fp'), \fcc(\fu'))
> 2^{Z(n+1)} - d_{\fp'}(\fcc(\fp'), \fcc(\fu'))
\ge 2^{Z(n+1)} - 4.
Since Z \ge 3 by defineZ, it follows that
\fcc(\fp') \notin B_{\fp}(\fcc(\fp), 1), so \Omega(\fp') \not\subset \Omega(\fp)
by eq-freq-comp-ball. Hence, by eq-freq-dyadic,
\Omega(\fp) \cap \Omega(\fp') = \emptyset. But if
x \in E(\fp) \cap E(\fp') then Q(x) \in \Omega(\fp) \cap \Omega(\fp').
This is a contradiction, and the lemma follows.
Now we prove Theorem 1.7.
Proof of Theorem 1.7. By definetp*, we have for each j
T_{\mathfrak{R}_j}^*g = \sum_{\fu \in \fU_j} \sum_{\fp \in \fT(\fu)} T_{\fp}^* g = \sum_{\fu \in \fU_j} \sum_{\fp \in \fT(\fu)} T_{\fp}^* \mathbf{1}_{E_j} g = T_{\mathfrak{R}_j}^* \mathbf{1}_{E_j} g.
Hence, by Lemma 1.117 and the triangle inequality,
\left\|\sum_{\fu \in \fU} \sum_{\fp \in \fT(\fu)} T^*_{\fp} g\right\|_2^2 = \left\|\sum_{j = 1}^{2^n} T^*_{\mathfrak{R}_{j}} g\right\|_2^2 = \left\|\sum_{j=1}^{2^n} T^*_{\mathfrak{R}_{j}} \mathbf{1}_{E_j} g\right\|_2^2
= \int_X \left|\sum_{j=1}^{2^n} T^*_{\mathfrak{R}_{j}} \mathbf{1}_{E_j} g\right|^2 \, \mathrm{d}\mu
\le \sum_{j=1}^{2^n} \|T_{\mathfrak{R}_j}^* \mathbf{1}_{E_j} g\|_2^2 + \sum_{j =1}^{2^n} \sum_{\substack{j' = 1\\j' \ne j}}^{2^n} \left| \int_X \overline{ T_{\mathfrak{R}_j}^* \mathbf{1}_{E_j} g} T_{\mathfrak{R}_{j'}}^* \mathbf{1}_{E_{j'}} g \right| \, \mathrm{d}\mu\, .
We use Lemma 1.118 to estimate each term in the first sum, and
Lemma 1.119 to bound each term in the second sum:
\le 2^{566a^3-n} \sum_{j = 1}^{2^n} \|\mathbf{1}_{E_j} g\|_2^2 + 2^{876a^3-4n}\sum_{j=1}^{2^n}\sum_{j' = 1}^{2^n} \|\mathbf{1}_{E_j} g\|_2 \|\mathbf{1}_{E_{j'}}g\|_2.
By Cauchy-Schwarz in the second two sums, this is at most
2^{876a^3} (2^{-n} + 2^{n}2^{-4n}) \sum_{j = 1}^n \|\mathbf{1}_{E_j} g\|_2^2,
and by disjointedness of the sets E_j, this is at most
2^{877a^3 - n} \|g\|_2^2.
Taking square roots, it follows that for all g
\left\|\sum_{\fu \in \fU} \sum_{\fp \in \fT(\fu)} T_{\fp}^* g\right\|_2 \le 2^{439a^3-\frac{n}{2}} \|g\|_2.
On the other hand, we have by disjointedness of the sets E_j from
Lemma 1.120 and the triangle inequality
\left\|\mathbf{1}_G \sum_{\fu \in \fU} \sum_{\fp \in \fT(\fu)} T_{\fp} f\right\|_2^2 = \left\|\sum_{j=1}^{2^n} \mathbf{1}_{E_j} \mathbf{1}_G T_{\mathfrak{R}_{j}} f\right\|_2^2 \le \sum_{j = 1}^{2^n} \|\mathbf{1}_{E_j} \mathbf{1}_G T_{\mathfrak{R}_{j}} f\|_2^2 \le \sum_{j = 1}^{2^n} \|\mathbf{1}_G T_{\mathfrak{R}_{j}} f\|_2^2.
Now with |f| \le \mathbf{1}_F and Lemma 1.118 we obtain
\| \mathbf{1}_G T_{\mathfrak{R}_j} f \|_2^2 = \left| \int_X \overline{\mathbf{1}_G T_{\mathfrak{R}_j} f} T_{\mathfrak{R}_j} f \right| = \left| \int_X \overline{T_{\mathfrak{R}_j}^* \mathbf{1}_G T_{\mathfrak{R}_j} f} \mathbf{1}_F f \right| \le \|f\|_2 \| \mathbf{1}_F T_{\mathfrak{R}_j}^* \mathbf{1}_G T_{\mathfrak{R}_j} f \|_2 \le 2^{283a^3-n/2} \dens_2(\bigcup_{\fu\in \fU}\fT(\fu))^{1/2} \| \mathbf{1}_G T_{\mathfrak{R}_j} f \|_2 \|f\|_2.
Dividing this last inequality by the finite
\| \mathbf{1}_G T_{\mathfrak{R}_j} f \|_2, substituting back and taking
square roots we get
\left\|\mathbf{1}_G \sum_{\fu \in \fU} \sum_{\fp \in \fT(\fu)} T_{\fp} f\right\|_2 \le 2^{283a^3} \dens_2(\bigcup_{\fu\in \fU}\fT(\fu))^{\frac{1}{2}} 2^{-\frac{n}{2}} (\sum_{j = 1}^{2^n} \|f\|_2^2)^{\frac{1}{2}} = 2^{283a^3} \dens_2(\bigcup_{\fu\in \fU}\fT(\fu))^{\frac{1}{2}} \|f\|_2.
Theorem 1.7 follows by taking the product of the
(2 - \frac{2}{q})-th power of eq-forest-bound-1 and the
(\frac{2}{q} - 1)-st power of eq-forest-bound-2.
1.5.18. Proof of the H"older cancellative condition
We need the following auxiliary lemma. Recall that \tau = 1/a.
-
support_holderApprox_subset[complete] -
enorm_holderApprox_sub_le[complete] -
iLipENorm_holderApprox_le[complete]
Let z\in X and R>0. Let \varphi: X \to \mathbb{C} be a function supported in the ball B:=B(z,R) with finite norm \|\varphi\|_{C^\tau(B(z, 2R))}. Let 0<t \leq 1 . There exists a function \tilde \varphi : X \to \mathbb{C}, supported in B(z,2R), such that for every x\in X
|\varphi(x) - \tilde \varphi(x)| \leq (t/2)^{\tau} \|\varphi\|_{C^\tau(B(z,2R))}
and
\|\tilde \varphi\|_{\Lip(B(z,2R))} \leq 2^{4a}t^{-1-a} \|\varphi\|_{C^{\tau}(B(z,2R))}.
Lean code for Lemma1.121●3 theorems
Associated Lean declarations
-
support_holderApprox_subset[complete]
-
enorm_holderApprox_sub_le[complete]
-
iLipENorm_holderApprox_le[complete]
-
support_holderApprox_subset[complete] -
enorm_holderApprox_sub_le[complete] -
iLipENorm_holderApprox_le[complete]
-
theoremdefined in Carleson/HolderVanDerCorput.leancomplete
theorem support_holderApprox_subset.{u_1}
support_holderApprox_subset.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] {z : X} {R t : ℝ} (hR : 0 < R) {φ : X → ℂ} (hφ : Function.support φ ⊆ Metric.ball z R) (ht : t ∈ Set.Ioc 0 1) : Function.support (holderApprox R t φ) ⊆ Metric.ball z (2 * R)Part of Lemma 8.0.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] {zX: XType u_1} {Rℝtℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (hR0 < R: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.Rℝ) {φX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hφFunction.support φ ⊆ Metric.ball z R: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.φX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`zXRℝ) (htt ∈ Set.Ioc 0 1: tℝ∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Set.IocSet.Ioc.{u_1} {α : Type u_1} [Preorder α] (a b : α) : Set α`Ioc a b` is the left-open right-closed interval $(a, b]$.0 1) : Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.(holderApproxholderApprox.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (R t : ℝ) (φ : X → ℂ) (x : X) : ℂ`φ ↦ \tilde{φ}` in the proof of Lemma 8.0.1.RℝtℝφX → ℂ) ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`zX(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Rℝ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.theorem support_holderApprox_subset.{u_1}
support_holderApprox_subset.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] {z : X} {R t : ℝ} (hR : 0 < R) {φ : X → ℂ} (hφ : Function.support φ ⊆ Metric.ball z R) (ht : t ∈ Set.Ioc 0 1) : Function.support (holderApprox R t φ) ⊆ Metric.ball z (2 * R)Part of Lemma 8.0.1.{XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] {zX: XType u_1} {Rℝtℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (hR0 < R: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.Rℝ) {φX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hφFunction.support φ ⊆ Metric.ball z R: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.φX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`zXRℝ) (htt ∈ Set.Ioc 0 1: tℝ∈Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. Conventions for notations in identifiers: * The recommended spelling of `∈` in identifiers is `mem`.Set.IocSet.Ioc.{u_1} {α : Type u_1} [Preorder α] (a b : α) : Set α`Ioc a b` is the left-open right-closed interval $(a, b]$.0 1) : Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.(holderApproxholderApprox.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (R t : ℝ) (φ : X → ℂ) (x : X) : ℂ`φ ↦ \tilde{φ}` in the proof of Lemma 8.0.1.RℝtℝφX → ℂ) ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`zX(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Rℝ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Part of Lemma 8.0.1.
-
theoremdefined in Carleson/HolderVanDerCorput.leancomplete
theorem enorm_holderApprox_sub_le.{u_1}
enorm_holderApprox_sub_le.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] {z : X} {R t : ℝ} (hR : 0 < R) (ht : 0 < t) (h't : t ≤ 1) {φ : X → ℂ} (hφ : Function.support φ ⊆ Metric.ball z R) (x : X) : ‖φ x - holderApprox R t φ x‖ₑ ≤ ENNReal.ofReal (t / 2) ^ defaultτ a * iHolENorm φ z (2 * R) (defaultτ a){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] {zX: XType u_1} {Rℝtℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (hR0 < R: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.Rℝ) (ht0 < t: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.tℝ) (h'tt ≤ 1: tℝ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.1) {φX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hφFunction.support φ ⊆ Metric.ball z R: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.φX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`zXRℝ) (xX: XType u_1) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.φX → ℂxX-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).holderApproxholderApprox.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (R t : ℝ) (φ : X → ℂ) (x : X) : ℂ`φ ↦ \tilde{φ}` in the proof of Lemma 8.0.1.RℝtℝφX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.ENNReal.ofRealENNReal.ofReal (r : ℝ) : ENNReal`ofReal x` returns `x` if it is nonnegative, `0` otherwise.(HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.tℝ/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.2)HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.defaultτdefaultτ (a : ℕ) : ℝ`defaultτ` is the inverse of `a`.aℕ*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.iHolENormiHolENorm.{u_1, u_2} {𝕜 : Type u_1} {X : Type u_2} [PseudoMetricSpace X] [NormedField 𝕜] (φ : X → 𝕜) (x₀ : X) (R t : ℝ) : ENNRealthe L^∞-normalized t-Hölder norm. Defined in ℝ≥0∞ to avoid sup-related issues.φX → ℂzX(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Rℝ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(defaultτdefaultτ (a : ℕ) : ℝ`defaultτ` is the inverse of `a`.aℕ)theorem enorm_holderApprox_sub_le.{u_1}
enorm_holderApprox_sub_le.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] {z : X} {R t : ℝ} (hR : 0 < R) (ht : 0 < t) (h't : t ≤ 1) {φ : X → ℂ} (hφ : Function.support φ ⊆ Metric.ball z R) (x : X) : ‖φ x - holderApprox R t φ x‖ₑ ≤ ENNReal.ofReal (t / 2) ^ defaultτ a * iHolENorm φ z (2 * R) (defaultτ a){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] {zX: XType u_1} {Rℝtℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (hR0 < R: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.Rℝ) (ht0 < t: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.tℝ) (h'tt ≤ 1: tℝ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.1) {φX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hφFunction.support φ ⊆ Metric.ball z R: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.φX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`zXRℝ) (xX: XType u_1) : ‖ENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.φX → ℂxX-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).holderApproxholderApprox.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (R t : ℝ) (φ : X → ℂ) (x : X) : ℂ`φ ↦ \tilde{φ}` in the proof of Lemma 8.0.1.RℝtℝφX → ℂxX‖ₑENorm.enorm.{u_8} {E : Type u_8} [self : ENorm E] : E → ENNRealthe `ℝ≥0∞`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.ENNReal.ofRealENNReal.ofReal (r : ℝ) : ENNReal`ofReal x` returns `x` if it is nonnegative, `0` otherwise.(HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.tℝ/HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.2)HDiv.hDiv.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HDiv α β γ] : α → β → γ`a / b` computes the result of dividing `a` by `b`. The meaning of this notation is type-dependent. * For most types like `Nat`, `Int`, `Rat`, `Real`, `a / 0` is defined to be `0`. * For `Nat`, `a / b` rounds downwards. * For `Int`, `a / b` rounds downwards if `b` is positive or upwards if `b` is negative. It is implemented as `Int.ediv`, the unique function satisfying `a % b + b * (a / b) = a` and `0 ≤ a % b < natAbs b` for `b ≠ 0`. Other rounding conventions are available using the functions `Int.fdiv` (floor rounding) and `Int.tdiv` (truncation rounding). * For `Float`, `a / 0` follows the IEEE 754 semantics for division, usually resulting in `inf` or `nan`. Conventions for notations in identifiers: * The recommended spelling of `/` in identifiers is `div`.^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.defaultτdefaultτ (a : ℕ) : ℝ`defaultτ` is the inverse of `a`.aℕ*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.iHolENormiHolENorm.{u_1, u_2} {𝕜 : Type u_1} {X : Type u_2} [PseudoMetricSpace X] [NormedField 𝕜] (φ : X → 𝕜) (x₀ : X) (R t : ℝ) : ENNRealthe L^∞-normalized t-Hölder norm. Defined in ℝ≥0∞ to avoid sup-related issues.φX → ℂzX(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Rℝ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(defaultτdefaultτ (a : ℕ) : ℝ`defaultτ` is the inverse of `a`.aℕ) -
theoremdefined in Carleson/HolderVanDerCorput.leancomplete
theorem iLipENorm_holderApprox_le.{u_1}
iLipENorm_holderApprox_le.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] {z : X} {R t : ℝ} (ht : 0 < t) (h't : t ≤ 1) {φ : X → ℂ} (hφ : Function.support φ ⊆ Metric.ball z R) : iLipENorm (holderApprox R t φ) z (2 * R) ≤ 2 ^ (4 * a) * ENNReal.ofReal t ^ (-1 - ↑a) * iHolENorm φ z (2 * R) (defaultτ a){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] {zX: XType u_1} {Rℝtℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (ht0 < t: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.tℝ) (h'tt ≤ 1: tℝ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.1) {φX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hφFunction.support φ ⊆ Metric.ball z R: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.φX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`zXRℝ) : iLipENormiLipENorm.{u_3, u_4} {𝕜 : Type u_3} {X : Type u_4} [NormedField 𝕜] [PseudoMetricSpace X] (φ : X → 𝕜) (x₀ : X) (R : ℝ) : ENNRealThe inhomogeneous Lipschitz norm on a ball.(holderApproxholderApprox.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (R t : ℝ) (φ : X → ℂ) (x : X) : ℂ`φ ↦ \tilde{φ}` in the proof of Lemma 8.0.1.RℝtℝφX → ℂ) zX(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Rℝ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.4 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.aℕ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.ENNReal.ofRealENNReal.ofReal (r : ℝ) : ENNReal`ofReal x` returns `x` if it is nonnegative, `0` otherwise.tℝ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).-1 -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑aℕ)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.iHolENormiHolENorm.{u_1, u_2} {𝕜 : Type u_1} {X : Type u_2} [PseudoMetricSpace X] [NormedField 𝕜] (φ : X → 𝕜) (x₀ : X) (R t : ℝ) : ENNRealthe L^∞-normalized t-Hölder norm. Defined in ℝ≥0∞ to avoid sup-related issues.φX → ℂzX(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Rℝ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(defaultτdefaultτ (a : ℕ) : ℝ`defaultτ` is the inverse of `a`.aℕ)theorem iLipENorm_holderApprox_le.{u_1}
iLipENorm_holderApprox_le.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] {z : X} {R t : ℝ} (ht : 0 < t) (h't : t ≤ 1) {φ : X → ℂ} (hφ : Function.support φ ⊆ Metric.ball z R) : iLipENorm (holderApprox R t φ) z (2 * R) ≤ 2 ^ (4 * a) * ENNReal.ofReal t ^ (-1 - ↑a) * iHolENorm φ z (2 * R) (defaultτ a){XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {aℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} {qℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} {KX → X → ℂ: XType u_1→ XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} {σ₁X → ℤσ₂X → ℤ: XType u_1→ ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).} {FSet XGSet X: SetSet.{u} (α : Type u) : Type uA set is a collection of elements of some type `α`. Although `Set` is defined as `α → Prop`, this is an implementation detail which should not be relied on. Instead, `setOf` and membership of a set (`∈`) should be used to convert between sets and predicates.XType u_1} [MetricSpaceMetricSpace.{u} (α : Type u) : Type uA metric space is a type endowed with a `ℝ`-valued distance `dist` satisfying `dist x y = 0 ↔ x = y`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. See pseudometric spaces (`PseudoMetricSpace`) for the similar class with the `dist x y = 0 ↔ x = y` assumption weakened to `dist x x = 0`. Any metric space is a T1 topological space and a uniform space (see `TopologicalSpace`, `T1Space`, `UniformSpace`), where the topology and uniformity come from the metric. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[MetricSpace α] [MetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [ProofDataProofData.{u_1} {X : Type u_1} (a : outParam ℕ) (q : outParam ℝ) (K : outParam (X → X → ℂ)) (σ₁ σ₂ : outParam (X → ℤ)) (F G : outParam (Set X)) [PseudoMetricSpace X] : Type (u_1 + 1)Data common through most of chapters 2-7 (except 3).aℕqℝKX → X → ℂσ₁X → ℤσ₂X → ℤFSet XGSet X] {zX: XType u_1} {Rℝtℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.} (ht0 < t: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.tℝ) (h'tt ≤ 1: tℝ≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.1) {φX → ℂ: XType u_1→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.} (hφFunction.support φ ⊆ Metric.ball z R: Function.supportFunction.support.{u_1, u_3} {ι : Type u_1} {M : Type u_3} [Zero M] (f : ι → M) : Set ι`support` of a function is the set of points `x` such that `f x ≠ 0`.φX → ℂ⊆HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b` Conventions for notations in identifiers: * The recommended spelling of `⊆` in identifiers is `subset`.Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`zXRℝ) : iLipENormiLipENorm.{u_3, u_4} {𝕜 : Type u_3} {X : Type u_4} [NormedField 𝕜] [PseudoMetricSpace X] (φ : X → 𝕜) (x₀ : X) (R : ℝ) : ENNRealThe inhomogeneous Lipschitz norm on a ball.(holderApproxholderApprox.{u_1} {X : Type u_1} {a : ℕ} {q : ℝ} {K : X → X → ℂ} {σ₁ σ₂ : X → ℤ} {F G : Set X} [MetricSpace X] [ProofData a q K σ₁ σ₂ F G] (R t : ℝ) (φ : X → ℂ) (x : X) : ℂ`φ ↦ \tilde{φ}` in the proof of Lemma 8.0.1.RℝtℝφX → ℂ) zX(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Rℝ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.2 ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.4 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.aℕ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.ENNReal.ofRealENNReal.ofReal (r : ℝ) : ENNReal`ofReal x` returns `x` if it is nonnegative, `0` otherwise.tℝ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).-1 -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑aℕ)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.iHolENormiHolENorm.{u_1, u_2} {𝕜 : Type u_1} {X : Type u_2} [PseudoMetricSpace X] [NormedField 𝕜] (φ : X → 𝕜) (x₀ : X) (R t : ℝ) : ENNRealthe L^∞-normalized t-Hölder norm. Defined in ℝ≥0∞ to avoid sup-related issues.φX → ℂzX(HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.2 *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.Rℝ)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.(defaultτdefaultτ (a : ℕ) : ℝ`defaultτ` is the inverse of `a`.aℕ)
Proof. Define for x,y\in X the Lipschitz and thus measurable function
L(x,y) := \max\{0, 1 - \frac{\rho(x,y)}{tR}\}.
We have that L(x,y)\neq 0 implies
y\in B(x, tR).
We have for y\in B(x, 2^{-1}tR) that
|L(x,y)|\ge 2^{-1}.
Hence
\int L(x,y) \, \mathrm{d}\mu(y)\ge 2^{-1}\mu(B(x, 2^{-1}tR)).
Let n be the smallest integer so that
2^n t\ge 1.
Iterating n+2 times the doubling condition doublingx, we obtain
\int L(x,y) \, \mathrm{d}\mu(y)\ge 2^{-1-a(n+2)}\mu(B(x, 2R)).
Now define
\tilde \varphi(x) := \left(\int L(x,y) \, \mathrm{d}\mu(y)\right)^{-1}\int L(x,y) \varphi(y) \, \mathrm{d}\mu(y).
Using that \varphi is supported in B(z,R) and eql01, we have that
\tilde{\varphi} is supported in B(z,2R).
We prove eq-firstt. For any x\in X, using that L is nonnegative,
\left(\int L(x,y) \, \mathrm{d}\mu(y)\right) |\varphi(x) - \tilde \varphi(x)|
= \left| \int L(x,y)(\varphi(x) - \varphi(y)) \, \mathrm{d}\mu(y)\right|.
Using eql01, we estimate the last display by
\le \int_{B(x, tR)} L(x,y)|\varphi(x) - \varphi(y)| \, \mathrm{d}\mu(y).
We claim that in this integral,
|\varphi(x) - \varphi(y)|\le \rho(x,y)^\tau \|\varphi\|_{C^\tau(B(z, 2R))}(2R)^{-\tau}.
Indeed, if x or y does not belong to B(z, 2R), then the other point
is not in B(z,R) as \rho(x,y)\le tR \le R. Therefore,
\varphi(x)=\varphi(y)=0 since \varphi is supported in B (z, R).
Otherwise, both points are in B(z, 2R), and the inequality follows from the
definition of \|\varphi\|_{C^\tau(B(z, 2R))}.
Therefore, we can estimate the last display further by
\le \left(\int_{B(x, tR)} L(x,y) \rho(x,y)^\tau \, \mathrm{d}\mu(y) \right)\|\varphi\|_{C^\tau(B(z, 2R))}(2R)^{-\tau}.
Using the condition on the domain of integration to estimate \rho(x,y) by
tR and then expanding the domain by positivity of the integrand, we
estimate this further by
\le \left(\int L(x,y) \, \mathrm{d}\mu(y)\right) \|\varphi\|_{C^\tau(B(z, 2R))} (t/2)^{\tau}.
Dividing the string of inequalities from eql1 to eql5 by the positive
integral of L proves eq-firstt.
We turn to eq-secondt. For every x\in X, we have
\left|\int L(x,y) \, \mathrm{d}\mu(y)\right||\tilde{\varphi}(x)| =\left|\int L(x,y) {\varphi}(y)\, \mathrm{d}\mu(y)\right|
\le \left|\int L(x,y) \, \mathrm{d}\mu(y)\right| \sup_{x'\in X} |{\varphi}(x')|.
As \varphi is supported on B, dividing by the integral of L, we
obtain
|\tilde{\varphi}(x)|\le \sup_{x'\in B} |{\varphi}(x')|\le \|\varphi\|_{C^\tau(B(z, 2R))}.
If \rho(x,x')\ge R, then we have by the triangle inequality
R\frac{|\tilde{\varphi}(x') - \tilde \varphi(x)|}{\rho(x,x')} \le 2\sup_{x''\in X} |\tilde{\varphi}(x'')|\le 2\|\varphi\|_{C^\tau(B(z, 2R))}.
Now assume \rho(x,x')< R. For y\in X we have by the triangle inequality
and a two fold case distinction for the maximum in the definition of L,
|L(x,y) - L(x',y)| \le \frac{\rho(x,x')}{tR}.
We compute with eql10, first adding and subtracting a term in the integral,
\left(\int L(x,y) \, \mathrm{d}\mu(y)\right) |\tilde{\varphi}(x') - \tilde \varphi(x)|=
\left|\int L(x,y) \tilde{\varphi}(x') -L(x,y) \tilde{\varphi}(x) +L(x',y) \tilde{\varphi}(x')- L(x',y) \tilde{\varphi}(x') \, \mathrm{d}\mu(y)\right|.
Grouping the second and third and the first and fourth term, we obtain using
the definition of \tilde \varphi and Fubini,
\le \left| \int (L(x',y)-L(x,y)) \varphi(y) \, \mathrm{d}\mu(y)\right|
+ \left| \int L(x,y) \, \mathrm{d}\mu(y)-\int L(x',y) \, \mathrm{d}\mu(y)\right||\tilde{\varphi}(x')|
\le 2 \int |L(x,y) -L(x',y)| \, \mathrm{d}\mu(y) \|\varphi\|_{C^\tau(B(z, 2R))},
where in the last inequality we have used eql42.
Using further eql10 and the support of L, we estimate the last display by
\le 2 \frac{\rho(x,x')} {tR}\mu(B(x,tR)\cup B(x',tR)) \|\varphi\|_{C^\tau(B(z, 2R))}.
Using \rho(x,x')<R and the triangle inequality, we estimate the last display
by
\le 2 \frac{\rho(x,x')} {tR} \mu(B(x,2R)) \|\varphi\|_{C^\tau(B(z, 2R))}.
Dividing by the integral over L and using eql32 and 2nt1, we obtain
\frac {R |\tilde{\varphi}(x') - \tilde \varphi(x)|}{\rho(x,x')} \le 2^{2+a(n+2)}t^{-1}\|\varphi\|_{C^\tau(B(z, 2R))} \le 2^{2+3a} t^{-1-a} \|\varphi\|_{C^\tau(B(z, 2R))}.
Combining eql52 and eql226 using a\ge 4 and t\le 1 and adding
eql42 proves eq-secondt and completes the proof of
Lemma 1.121.
We turn to the proof of Theorem 1.8.
Proof of Theorem 1.8. Let z\in X and R>0 and set
B=B(z,R). Let \varphi be given as in Theorem 1.8. Set
t:=(1+d_B(\mfa,\mfb))^{-\frac{\tau}{2+a}}
and define \tilde{\varphi} as in Lemma 1.121. Let
\mfa and \mfb be in \Mf. Then
\left|\int e(\mfa(x)-{\mfb(x)}) \varphi (x)\, \mathrm{d}\mu(x)\right|
\le \left|\int e(\mfa(x)-{\mfb(x)}) \tilde{\varphi} (x)\, \mathrm{d}\mu(x)\right|
+ \left|\int e(\mfa(x)-{\mfb(x)}) (\varphi (x)-\tilde{\varphi}(x))\, \mathrm{d}\mu(x)\right|.
Using the cancellative condition eq-vdc-cond of \Mf on the ball
B(z,2R), the term eql61 is bounded above by
2^a \mu(B(z,2R)) \|\tilde{\varphi}\|_{\Lip(B(z,2R))} (1 + d_{B(z,2R)}(\mfa,\mfb))^{-\tau}.
Using the doubling condition doublingx, the inequality eq-secondt, and the
estimate d_B\le d_{B(z,2R)} from the definition, we estimate eql63 from
above by
2^{6a}t^{-1-a} \mu(B) \|{\varphi}\|_{C^\tau(B)} (1 + d_{B}(\mfa,\mfb))^{-\tau}.
The term eql62 we estimate using eq-firstt and that \mfa and \mfb
are real and thus e(\mfa) and e(\mfb) bounded in absolute value by 1.
We obtain for eql62 with doublingx the upper bound
2^a \mu(B) t^{\tau} \|\varphi\|_{C^\tau(B)}.
Using the definition eql69 of t and adding eql64 and eql65 estimates
eql60 from above by
2^{6a} \mu(B) \|{\varphi}\|_{C^\tau(B)} (1 + d_{B}(\mfa,\mfb))^{-\frac{\tau}{2+a}}
+ 2^a \mu(B) \|{\varphi}\|_{C^\tau(B)} (1 + d_{B}(\mfa,\mfb))^{-\frac{\tau^2}{2+a}}.
This is
\le 2^{1+6a} \mu(B) \|{\varphi}\|_{C^\tau(B)} (1 + d_{B}(\mfa,\mfb))^{-\frac{\tau^2}{2+a}},
where we used \tau\le 1. This completes the proof of
Theorem 1.8.
1.5.19. Proof of Vitali covering and Hardy--Littlewood
We begin with a classical representation of the Lebesgue norm.
Let 1\le p< \infty. Then for any measurable function
u:X\to [0,\infty) on the measure space X relative to the measure \mu
we have
\|u\|_p^p=p\int_0^\infty \lambda^{p-1}\mu(\{x: u(x)\ge \lambda\})\, d\lambda.
Lean code for Lemma1.122●1 theorem
Associated Lean declarations
-
theoremdefined in Carleson/ToMathlib/WeakType.leancomplete
theorem MeasureTheory.eLpNorm_pow_eq_distribution.{u_1, u_3}
MeasureTheory.eLpNorm_pow_eq_distribution.{u_1, u_3} {α : Type u_1} {ε : Type u_3} {m : MeasurableSpace α} {μ : MeasureTheory.Measure α} [TopologicalSpace ε] [ContinuousENorm ε] {f : α → ε} (hf : MeasureTheory.AEStronglyMeasurable f μ) {p : NNReal} (hp : 0 < p) : MeasureTheory.eLpNorm f (↑p) μ ^ ↑p = ∫⁻ (t : ℝ) in Set.Ioi 0, ↑p * ENNReal.ofReal (t ^ (↑p - 1)) * MeasureTheory.distribution f (ENNReal.ofReal t) μThe layer-cake theorem, or Cavalieri's principle, written using `eLpNorm`.{αType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {εType u_3: Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {mMeasurableSpace α: MeasurableSpaceMeasurableSpace.{u_7} (α : Type u_7) : Type u_7A measurable space is a space equipped with a σ-algebra.αType u_1} {μMeasureTheory.Measure α: MeasureTheory.MeasureMeasureTheory.Measure.{u_6} (α : Type u_6) [MeasurableSpace α] : Type u_6A measure is defined to be an outer measure that is countably additive on measurable sets, with the additional assumption that the outer measure is the canonical extension of the restricted measure. The measure of a set `s`, denoted `μ s`, is an extended nonnegative real. The real-valued version is written `μ.real s`.αType u_1} [TopologicalSpaceTopologicalSpace.{u} (X : Type u) : Type uA topology on `X`.εType u_3] [ContinuousENormContinuousENorm.{u_8} (E : Type u_8) [TopologicalSpace E] : Type u_8A type `E` equipped with a continuous map `‖·‖ₑ : E → ℝ≥0∞` NB. We do not demand that the topology is somehow defined by the enorm: for `ℝ≥0∞` (the motivating example behind this definition), this is not true.εType u_3] {fα → ε: αType u_1→ εType u_3} (hfMeasureTheory.AEStronglyMeasurable f μ: MeasureTheory.AEStronglyMeasurableMeasureTheory.AEStronglyMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [TopologicalSpace β] [m : MeasurableSpace α] {m₀ : MeasurableSpace α} (f : α → β) (μ : MeasureTheory.Measure α := by volume_tac) : PropA function is `AEStronglyMeasurable` with respect to a measure `μ` if it is almost everywhere equal to the limit of a sequence of simple functions. One can specify the sigma-algebra according to which simple functions are taken using the `AEStronglyMeasurable[m]` notation in the `MeasureTheory` scope.fα → εμMeasureTheory.Measure α) {pNNReal: NNRealNNReal : TypeNonnegative real numbers, denoted as `ℝ≥0` within the NNReal namespace} (hp0 < p: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.pNNReal) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fα → ε(↑pNNReal) μMeasureTheory.Measure α^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.↑pNNReal=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(tℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.Set.IoiSet.Ioi.{u_1} {α : Type u_1} [Preorder α] (b : α) : Set α`Ioi a` is the left-open right-infinite interval $(a, ∞)$.0,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.↑pNNReal*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.ENNReal.ofRealENNReal.ofReal (r : ℝ) : ENNReal`ofReal x` returns `x` if it is nonnegative, `0` otherwise.(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.tℝ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑pNNReal-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).1)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.distributionMeasureTheory.distribution.{u_1, u_3} {α : Type u_1} {ε : Type u_3} {m : MeasurableSpace α} [ENorm ε] (f : α → ε) (t : ENNReal) (μ : MeasureTheory.Measure α) : ENNRealThe distribution function of a function `f`. Todo: rename to something more Mathlib-appropriate.fα → ε(ENNReal.ofRealENNReal.ofReal (r : ℝ) : ENNReal`ofReal x` returns `x` if it is nonnegative, `0` otherwise.tℝ) μMeasureTheory.Measure αtheorem MeasureTheory.eLpNorm_pow_eq_distribution.{u_1, u_3}
MeasureTheory.eLpNorm_pow_eq_distribution.{u_1, u_3} {α : Type u_1} {ε : Type u_3} {m : MeasurableSpace α} {μ : MeasureTheory.Measure α} [TopologicalSpace ε] [ContinuousENorm ε] {f : α → ε} (hf : MeasureTheory.AEStronglyMeasurable f μ) {p : NNReal} (hp : 0 < p) : MeasureTheory.eLpNorm f (↑p) μ ^ ↑p = ∫⁻ (t : ℝ) in Set.Ioi 0, ↑p * ENNReal.ofReal (t ^ (↑p - 1)) * MeasureTheory.distribution f (ENNReal.ofReal t) μThe layer-cake theorem, or Cavalieri's principle, written using `eLpNorm`.{αType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {εType u_3: Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.} {mMeasurableSpace α: MeasurableSpaceMeasurableSpace.{u_7} (α : Type u_7) : Type u_7A measurable space is a space equipped with a σ-algebra.αType u_1} {μMeasureTheory.Measure α: MeasureTheory.MeasureMeasureTheory.Measure.{u_6} (α : Type u_6) [MeasurableSpace α] : Type u_6A measure is defined to be an outer measure that is countably additive on measurable sets, with the additional assumption that the outer measure is the canonical extension of the restricted measure. The measure of a set `s`, denoted `μ s`, is an extended nonnegative real. The real-valued version is written `μ.real s`.αType u_1} [TopologicalSpaceTopologicalSpace.{u} (X : Type u) : Type uA topology on `X`.εType u_3] [ContinuousENormContinuousENorm.{u_8} (E : Type u_8) [TopologicalSpace E] : Type u_8A type `E` equipped with a continuous map `‖·‖ₑ : E → ℝ≥0∞` NB. We do not demand that the topology is somehow defined by the enorm: for `ℝ≥0∞` (the motivating example behind this definition), this is not true.εType u_3] {fα → ε: αType u_1→ εType u_3} (hfMeasureTheory.AEStronglyMeasurable f μ: MeasureTheory.AEStronglyMeasurableMeasureTheory.AEStronglyMeasurable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [TopologicalSpace β] [m : MeasurableSpace α] {m₀ : MeasurableSpace α} (f : α → β) (μ : MeasureTheory.Measure α := by volume_tac) : PropA function is `AEStronglyMeasurable` with respect to a measure `μ` if it is almost everywhere equal to the limit of a sequence of simple functions. One can specify the sigma-algebra according to which simple functions are taken using the `AEStronglyMeasurable[m]` notation in the `MeasureTheory` scope.fα → εμMeasureTheory.Measure α) {pNNReal: NNRealNNReal : TypeNonnegative real numbers, denoted as `ℝ≥0` within the NNReal namespace} (hp0 < p: 0 <LT.lt.{u} {α : Type u} [self : LT α] : α → α → PropThe less-than relation: `x < y` Conventions for notations in identifiers: * The recommended spelling of `<` in identifiers is `lt`.pNNReal) : MeasureTheory.eLpNormMeasureTheory.eLpNorm.{u_1, u_2} {α : Type u_1} {ε : Type u_2} [ENorm ε] {x✝ : MeasurableSpace α} (f : α → ε) (p : ENNReal) (μ : MeasureTheory.Measure α := by volume_tac) : ENNReal`ℒp` seminorm, equal to `0` for `p=0`, to `(∫ ‖f a‖^p ∂μ) ^ (1/p)` for `0 < p < ∞` and to `essSup ‖f‖ μ` for `p = ∞`.fα → ε(↑pNNReal) μMeasureTheory.Measure α^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.↑pNNReal=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.∫⁻MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.(tℝ: ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.) inMeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.Set.IoiSet.Ioi.{u_1} {α : Type u_1} [Preorder α] (b : α) : Set α`Ioi a` is the left-open right-infinite interval $(a, ∞)$.0,MeasureTheory.lintegral.{u_4} {α : Type u_4} {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) (f : α → ENNReal) : ENNRealThe **lower Lebesgue integral** of a function `f` with respect to a measure `μ`.↑pNNReal*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.ENNReal.ofRealENNReal.ofReal (r : ℝ) : ENNReal`ofReal x` returns `x` if it is nonnegative, `0` otherwise.(HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.tℝ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.(HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).↑pNNReal-HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).1)HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`. The meaning of this notation is type-dependent. * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. Conventions for notations in identifiers: * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).)HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.MeasureTheory.distributionMeasureTheory.distribution.{u_1, u_3} {α : Type u_1} {ε : Type u_3} {m : MeasurableSpace α} [ENorm ε] (f : α → ε) (t : ENNReal) (μ : MeasureTheory.Measure α) : ENNRealThe distribution function of a function `f`. Todo: rename to something more Mathlib-appropriate.fα → ε(ENNReal.ofRealENNReal.ofReal (r : ℝ) : ENNReal`ofReal x` returns `x` if it is nonnegative, `0` otherwise.tℝ) μMeasureTheory.Measure αThe layer-cake theorem, or Cavalieri's principle, written using `eLpNorm`.
Proof. The left-hand side of eq-layercake is by definition
\int_X u(x)^p \, d\mu(x).
Writing u(x) as an elementary integral in \lambda and then using
Fubini, we write for the last display
=\int_X \int _0^{u(x)} p \lambda^{p-1} d\lambda\, d\mu(x)
=p\int _0^{\infty} \lambda^{p-1} \mu(\{x: u(x)\ge \lambda\}) d\lambda.
This proves the lemma.
The following lemma will be used to define M in the proof of
Theorem 1.9.
-
covering_separable_space[complete]
For each r > 0, there exists a countable collection C(r) \subset X of
points such that
X \subset \bigcup_{c \in C(r)} B(c, r).
Lean code for Lemma1.123●1 theorem
Associated Lean declarations
-
covering_separable_space[complete]
-
covering_separable_space[complete]
-
theoremdefined in Carleson/ToMathlib/HardyLittlewood.leancomplete
theorem covering_separable_space.{u_1}
covering_separable_space.{u_1} (X : Type u_1) [PseudoMetricSpace X] [TopologicalSpace.SeparableSpace X] : ∃ C, C.Countable ∧ ∀ r > 0, ⋃ c ∈ C, Metric.ball c r = Set.univLemma 9.0.2(XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.) [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [TopologicalSpace.SeparableSpaceTopologicalSpace.SeparableSpace.{u} (α : Type u) [t : TopologicalSpace α] : PropA separable space is one with a countable dense subset, available through `TopologicalSpace.exists_countable_dense`. If `α` is also known to be nonempty, then `TopologicalSpace.denseSeq` provides a sequence `ℕ → α` with dense range, see `TopologicalSpace.denseRange_denseSeq`. If `α` is a uniform space with countably generated uniformity filter (e.g., an `EMetricSpace`), then this condition is equivalent to `SecondCountableTopology α`. In this case the latter should be used as a typeclass argument in theorems because Lean can automatically deduce `TopologicalSpace.SeparableSpace` from `SecondCountableTopology` using `TopologicalSpace.SecondCountableTopology.to_separableSpace`, but deducing `SecondCountableTopology` from `TopologicalSpace.SeparableSpace` requires more assumptions.XType u_1] : ∃ CSet X, CSet X.CountableSet.Countable.{u} {α : Type u} (s : Set α) : PropA set `s` is countable if the corresponding subtype is countable, i.e., there exists an injective map `f : s → ℕ`. Note that this is an abbreviation, so `hs : Set.Countable s` in the proof context is the same as an instance `Countable s`. For a constructive version, see `Encodable`.∧And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be constructed and destructed like a pair: if `ha : a` and `hb : b` then `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`. Conventions for notations in identifiers: * The recommended spelling of `∧` in identifiers is `and`.∀ rℝ> 0, ⋃ cX∈ CSet X, Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`cXrℝ=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.Set.univSet.univ.{u} {α : Type u} : Set αThe universal set on a type `α` is the set containing all elements of `α`. This is conceptually the "same as" `α` (in set theory, it is actually the same), but type theory makes the distinction that `α` is a type while `Set.univ` is a term of type `Set α`. `Set.univ` can itself be coerced to a type `↥Set.univ` which is in bijection with (but distinct from) `α`.theorem covering_separable_space.{u_1}
covering_separable_space.{u_1} (X : Type u_1) [PseudoMetricSpace X] [TopologicalSpace.SeparableSpace X] : ∃ C, C.Countable ∧ ∀ r > 0, ⋃ c ∈ C, Metric.ball c r = Set.univLemma 9.0.2(XType u_1: Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.) [PseudoMetricSpacePseudoMetricSpace.{u} (α : Type u) : Type uA pseudometric space is a type endowed with a `ℝ`-valued distance `dist` satisfying reflexivity `dist x x = 0`, commutativity `dist x y = dist y x`, and the triangle inequality `dist x z ≤ dist x y + dist y z`. Note that we do not require `dist x y = 0 → x = y`. See metric spaces (`MetricSpace`) for the similar class with that stronger assumption. Any pseudometric space is a topological space and a uniform space (see `TopologicalSpace`, `UniformSpace`), where the topology and uniformity come from the metric. Note that a T1 pseudometric space is just a metric space. We make the uniformity/topology part of the data instead of deriving it from the metric. This e.g. ensures that we do not get a diamond when doing `[PseudoMetricSpace α] [PseudoMetricSpace β] : TopologicalSpace (α × β)`: The product metric and product topology agree, but not definitionally so. See Note [forgetful inheritance].XType u_1] [TopologicalSpace.SeparableSpaceTopologicalSpace.SeparableSpace.{u} (α : Type u) [t : TopologicalSpace α] : PropA separable space is one with a countable dense subset, available through `TopologicalSpace.exists_countable_dense`. If `α` is also known to be nonempty, then `TopologicalSpace.denseSeq` provides a sequence `ℕ → α` with dense range, see `TopologicalSpace.denseRange_denseSeq`. If `α` is a uniform space with countably generated uniformity filter (e.g., an `EMetricSpace`), then this condition is equivalent to `SecondCountableTopology α`. In this case the latter should be used as a typeclass argument in theorems because Lean can automatically deduce `TopologicalSpace.SeparableSpace` from `SecondCountableTopology` using `TopologicalSpace.SecondCountableTopology.to_separableSpace`, but deducing `SecondCountableTopology` from `TopologicalSpace.SeparableSpace` requires more assumptions.XType u_1] : ∃ CSet X, CSet X.CountableSet.Countable.{u} {α : Type u} (s : Set α) : PropA set `s` is countable if the corresponding subtype is countable, i.e., there exists an injective map `f : s → ℕ`. Note that this is an abbreviation, so `hs : Set.Countable s` in the proof context is the same as an instance `Countable s`. For a constructive version, see `Encodable`.∧And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be constructed and destructed like a pair: if `ha : a` and `hb : b` then `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`. Conventions for notations in identifiers: * The recommended spelling of `∧` in identifiers is `and`.∀ rℝ> 0, ⋃ cX∈ CSet X, Metric.ballMetric.ball.{u} {α : Type u} [PseudoMetricSpace α] (x : α) (ε : ℝ) : Set α`ball x ε` is the set of all points `y` with `dist y x < ε`cXrℝ=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.Set.univSet.univ.{u} {α : Type u} : Set αThe universal set on a type `α` is the set containing all elements of `α`. This is conceptually the "same as" `α` (in set theory, it is actually the same), but type theory makes the distinction that `α` is a type while `Set.univ` is a term of type `Set α`. `Set.univ` can itself be coerced to a type `↥Set.univ` which is in bijection with (but distinct from) `α`.Lemma 9.0.2
Proof. It clearly suffices to construct finite collections C(r,k) such
that
B(o, r2^k) \subset \bigcup_{c \in C(r,k)} B(c,r),
since then the collection C(r) = \bigcup_{k \in \mathbb{N}} C(r,k) has the
desired property.
Suppose that Y \subset B(o, r2^k) is a collection of points such that for
all y, y' \in Y with y \ne y', we have \rho(y,y') \ge r. Then the
balls B(y, r/2) are pairwise disjoint and contained in
B(o, r2^{k+1}). If y \in B(o, r), then
B(o, r2^{k+1}) \subset B(y, r2^{k+2}). Thus, by the doubling property
doublingx,
\mu(B(y, \frac{r}{2})) \ge 2^{-(k+2)a} \mu(B(o, r2^{k+1})).
Thus, we have
\mu(B(o, r2^{k+1})) \ge \sum_{y \in Y} \mu(B(y, \frac{r}{2})) \ge |Y| 2^{-(k+2)a} \mu(B(o, r2^{k+1})).
We conclude that |Y| \le 2^{(k+2)a}. In particular, there exists a set
Y of maximal cardinality. Define C(r,k) to be such a set.
If x \in B(o, r2^k) and x \notin C(r,k), then there must exist
y \in C(r,k) with \rho(x,y) < r. Thus C(r,k) has the desired
property.
We turn to the proof of Theorem 1.9.
Proof of Hardy-Littlewood. Let the collection \mathcal{B} be given. We
first show eq-besico.
We recursively choose a finite sequence B_i\in \mathcal{B} for i\ge 0 as
follows. Assume B_{i'} is already chosen for 0\le i'<i. If there exists
a ball B_{i}\in \mathcal{B} so that B_{i} is disjoint from all
B_{i'} with 0\le i'<i, then choose such a ball
B_i=B(x_i,r_i) with maximal r_i.
If there is no such ball, stop the selection and set i'':=i.
By disjointedness of the chosen balls and since 0 \le u, we have
\sum_{0\le i<i''}\int_{B_i} u(x)\, d\mu(x) \le \int_X u(x)\, d\mu(x).
By eq-ball-assumption, we conclude
\lambda \sum_{0\le i<i''}\mu(B_i) \le \int_X u(x)\, d\mu(x).
Let x\in \bigcup \mathcal{B}. Choose a ball B'=B(x',r')\in \mathcal{B}
such that x\in B'. If B' is one of the selected balls, then
x\in \bigcup _{0\le i< i''}B_i\subset \bigcup _{0\le i< i''}B(x_i,3r_i).
If B' is not one of the selected balls, then as it is not selected at time
i'', there is a selected ball B_i with B'\cap B_i\neq \emptyset.
Choose such B_i with minimal index i. As B' is therefore disjoint
from all balls B_{i'} with i'<i and as it was not selected in place of
B_i, we have r_i\ge r'.
Using a point y in the intersection of B_i and B', we conclude by the
triangle inequality
\rho(x_i,x')\le \rho(x_i,y)+\rho(x',y)\le r_i+r'\le 2r_i.
By the triangle inequality again, we further conclude
\rho(x_i,x)\le \rho(x_i,x')+\rho(x',x)\le 2r_i+r'\le 3r_i.
It follows that
x\in \bigcup _{0\le i< i''}B(x_i,3r_i).
With 3rone and 3rtwo, we conclude
\bigcup \mathcal{B}\subset \bigcup _{0\le i< i''}B(x_i,3r_i).
With the doubling property doublingx applied twice, we conclude
\mu(\bigcup{\mathcal{B}}) \le \sum _{0\le i< i''}\mu (B(x_i,3r_i)) \le 2^{2a}\sum _{0\le i< i''}\mu (B_i).
With eqbes1 and eqbes2 we conclude eq-besico.
We turn to the proof of eq-hlm. We first consider the case p_1=1 and
recall M_{\mathcal{B}}=M_{\mathcal{B},1}. We write for the p_2-th power
of left-hand side of eq-hlm with Lemma 1.122 and a change of
variables
\|M_{\mathcal{B}}u(x)\|_{p_2}^{p_2} =p_2\int _0^{\infty} \lambda^{p_2-1} \mu(\{x: M_{\mathcal{B}}u(x)\ge \lambda\}) d\lambda
=2^{p_2} p_2\int _0^{\infty} \lambda^{p_2-1} \mu(\{x: M_{\mathcal{B}}u(x)\ge 2\lambda\}) d\lambda.
Using Lemma 1.122 and a change of variables, fix
\lambda\ge 0 and let x\in X satisfy
M_{\mathcal{B}}u(x)\ge 2\lambda. By definition of M_{\mathcal{B}}, there
is a ball B'\in \mathcal{B} such that x\in B' and
\int_{B'} u(y)\, d\mu(y)\ge 2\lambda \mu({B'}).
Define u_\lambda(y):=0 if |u(y)|<\lambda and u_\lambda(y):=u(y) if
|u(y)|\ge \lambda. Then with eqbesi10
\int_{B'} u_\lambda (y)\, d\mu(y) =\int_{B'} u (y)\, d\mu(y)- \int_{B'} (u-u_\lambda) (y) d\mu(y)
\ge 2\lambda \mu({B'})- \int_{B'} (u-u_\lambda) (y) d\mu(y).
As (u-u_\lambda)(y)\le \lambda by definition, we can estimate the last
display by
\ge 2\lambda \mu({B'})- \int_{B'} \lambda \, d\mu(y) =\lambda \mu({B'}).
Hence x is contained in \bigcup(\mathcal{B}_\lambda), where
\mathcal{B}_\lambda is the collection of balls B'' in \mathcal{B}
such that
\int_{B''} u_\lambda (y)\, d\mu(y)\ge \lambda \mu(B'').
We have thus seen
\{x: M_{\mathcal{B}}u(x)\ge 2\lambda\}\subset \bigcup \mathcal{B}_\lambda.
Applying eq-besico to the collection \mathcal{B}_\lambda gives
\lambda \mu(\{x: M_{\mathcal{B}}u(x)\ge 2\lambda\})\le 2^{2a} \int u_\lambda (x)\, dx.
With Lemma 1.122,
\lambda \mu(\{x: M_{\mathcal{B}}u(x)\ge 2\lambda\})\le 2^{2a} \int_0^\infty \mu (\{x: |u_\lambda (x)|\ge \lambda'\})\, d\lambda'.
By definition of u_\lambda, making a case distinction between
\lambda\ge \lambda' and \lambda <\lambda', we see that
\mu (\{x: |u_\lambda (x)|\ge \lambda'\}) \le \mu (\{x: |u (x)|\ge \max(\lambda,\lambda')\}).
We obtain with eqbesi11, eqbesi12, and eqbesi13
\|M_{\mathcal{B}}u(x)\|_{p_2}^{p_2}
\le 2^{p_2+2a} p_2 \int_0^\infty \lambda^{p_2-2} \int_0^\infty \mu (\{x: |u (x)|\ge \max(\lambda,\lambda')\}) \, d\lambda'd\lambda.
We split the integral into \lambda\ge \lambda' and
\lambda<\lambda' and resolve the maximum correspondingly.
We have for \lambda\ge \lambda' with Lemma 1.122
\int_0^\infty \lambda^{p_2-2} \int_0^\lambda \mu (\{x: |u (x)|\ge \lambda\}) \, d\lambda'd\lambda
=\int_0^\infty \lambda^{p_2-1} \mu (\{x: |u (x)|\ge \lambda\}) d\lambda
=p_2^{-1} \|u\|_{p_2}^{p_2}.
We have for \lambda< \lambda' with Fubini and
Lemma 1.122
\int_0^\infty \lambda^{p_2-2} \int_\lambda^\infty \mu (\{x: |u(x)|\ge \lambda'\}) \, d\lambda'd\lambda
=\int_0^\infty \int_0^{\lambda'}\lambda^{p_2-2} \mu (\{x: |u (x)|\ge \lambda'\}) d\lambda d\lambda'
=(p_2-1)^{-1}\int_0^\infty (\lambda')^{p_2-1} \mu (\{x: |u(x)|\ge \lambda'\}) d\lambda'
=(p_2-1)^{-1} p_2^{-1}\|u\|_{p_2}^{p_2}.
Adding the two estimates eqbesi14 and eqbesi15 gives
\|M_{\mathcal{B}}u(x)\|_{p_2}^{p_2} \le 2^{p_2+2a} (1+(p_2-1)^{-1})\|u\|_{p_2}^{p_2} = 2^{p_2+2a} p_2(p_2-1)^{-1}\|u\|_{p_2}^{p_2}.
With a\ge 1 and p_2>1, taking the p_2-th root, we obtain eq-hlm.
We turn to the case of general 1\le p_1<p_2. We have
M_{\mathcal{B},p_1}u=(M_{\mathcal{B}} (|u|^{p_1}))^{\frac 1{p_1}}.
Applying the special case of eq-hlm for M_{\mathcal{B}} gives
\|M_{\mathcal{B},p_1}u\|_{p_2}= \|M_{\mathcal{B}} (|u|^{p_1})\|_{p_2/p_1}^{\frac 1{p_1}}
\le 2^{2a} (p_2/p_1) (p_2/p_1-1)^{-1} \|(|u|^{p_1})\|_{p_2/p_1}^{\frac 1{p_1}} =2^{2a} p_2(p_2-p_1)^{-1}\|u\|_{p_2}.
This proves eq-hlm in general.
Now we construct the operator M satisfying eq-ball-av and eq-hlm-2.
For each k \in \mathbb{Z} we choose a countable set C(2^k) as in
Lemma 1.123. Define
\mathcal{B}_\infty = \{B(c, 2^k) \ : \ c \in C(2^k), k \in \mathbb{Z}\}.
By Lemma 1.123, this is a countable collection of balls. We
choose an enumeration \mathcal{B}_\infty = \{B_1, \dotsc\} and define
\mathcal{B}_n = \{B_1, \dotsc, B_n\}.
We define
Mw := 2^{2a}\sup_{n \in \mathbb{N}} M_{\mathcal{B}_n}w.
This function is measurable for each measurable w, since it is a countable
supremum of measurable functions. Estimate eq-hlm-2 follows immediately from
eq-hlm and the monotone convergence theorem.
It remains to show eq-ball-av. Let B = B(x, r) \subset X. Let k be the
smallest integer such that 2^k \ge r, in particular we have
2^k < 2r. By definition of C(2^k), there exists
c \in C(2^k) with x \in B(c, 2^k). By the triangle inequality, we have
B(c, 2^k) \subset B(x, 4r), and hence by the doubling property doublingx
\mu(B(c, 2^k)) \le 2^{2a} \mu(B(x,r)).
It follows that for each z \in B(x,r)
\frac{1}{\mu(B(x,r))}\int_{B(x,r)} |w(y)| \, \mathrm{d}\mu(y) \le \frac{2^{2a}}{\mu(B(c,2^k))}\int_{B(c,2^k)} |w(y)| \, \mathrm{d}\mu(y)
\le Mw(z).
This completes the proof.