All proofs
Project-declaredLean 4.32.0 · mathlib@81a5d257c8e4

Drc

drc

Plain-language statement

A dependent-random-choice estimate. For p2p \ge 2, a nonnegative function ff, nonempty AA, and intersecting sets B1,B2B_1,B_2, the support hypothesis produces subsets A1B1A_1 \subseteq B_1 and A2B2A_2 \subseteq B_2 whose normalized difference convolution has controlled correlation with ff. Both relative sizes Ai/Bi|A_i|/|B_i| are bounded below by the same explicit quantity, namely one quarter of a normalized 2p2p-th power of the weighted LpL^p norm of 1A1A1_A \mathbin{\circleddash} 1_A.

Exact Lean statement

lemma drc (hp₂ : 2 ≤ p) (f : G → ℝ≥0) (hf : ∃ x, x ∈ B₁ - B₂ ∧ x ∈ A - A ∧ x ∈ f.support)
    (hB : (B₁ ∩ B₂).Nonempty) (hA : A.Nonempty) :
    ∃ A₁, A₁ ⊆ B₁ ∧ ∃ A₂, A₂ ⊆ B₂ ∧
      ⟪μ_[ℝ] A₁ ○ᵈ μ A₂, (↑) ∘ f⟫_[ℝ] * ‖𝟭_[A, ℝ] ○ᵈ 𝟭_[A]‖_[p, μ B₁ ○ᵈ μ B₂] ^ p
        ≤ 2 * ∑ x, (μ B₁ ○ᵈ μ B₂) x * (𝟭_[A, ℝ] ○ᵈ 𝟭_[A]) x ^ p * f x ∧
      (4 : ℝ) ⁻¹ * ‖𝟭_[A, ℝ] ○ᵈ 𝟭_[A]‖_[p, μ B₁ ○ᵈ μ B₂] ^ (2 * p) / #A ^ (2 * p)
        ≤ #A₁ / #B₁ ∧
      (4 : ℝ) ⁻¹ * ‖𝟭_[A, ℝ] ○ᵈ 𝟭_[A]‖_[p, μ B₁ ○ᵈ μ B₂] ^ (2 * p) / #A ^ (2 * p)
        ≤ #A₂ / #B₂

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
lemma drc (hp₂ : 2  p) (f : G  0) (hf :  x, x  B₁ - B₂  x  A - A  x  f.support)    (hB : (B₁ ∩ B₂).Nonempty) (hA : A.Nonempty) :     A₁, A₁  B₁   A₂, A₂  B₂       ⟪μ_[] A₁ ○ᵈ μ A₂, (↑) ∘ f⟫_[] * ‖𝟭_[A, ] ○ᵈ 𝟭_[A]‖_[p, μ B₁ ○ᵈ μ B₂] ^ p         2 * ∑ x, (μ B₁ ○ᵈ μ B₂) x * (𝟭_[A, ] ○ᵈ 𝟭_[A]) x ^ p * f x       (4 : ) ⁻¹ * ‖𝟭_[A, ] ○ᵈ 𝟭_[A]‖_[p, μ B₁ ○ᵈ μ B₂] ^ (2 * p) / #A ^ (2 * p)         #A₁ / #B₁       (4 : ) ⁻¹ * ‖𝟭_[A, ] ○ᵈ 𝟭_[A]‖_[p, μ B₁ ○ᵈ μ B₂] ^ (2 * p) / #A ^ (2 * p)         #A₂ / #B₂ := by  have := hB.mono inter_subset_left  have := hB.mono inter_subset_right  have hp₀ : p  0 := by positivity  have := dLpNorm_ddconv_pos hp₀ hB hA  set M :  :=    2 ⁻¹ * ‖𝟭_[A, ] ○ᵈ 𝟭_[A]‖_[p, μ B₁ ○ᵈ μ B₂] ^ p * (sqrt #B₁ * sqrt #B₂) / #A ^ p      with hM_def  have hM : 0 < M := by rw [hM_def]; positivity  replace hf : 0 < ∑ x, (μ_[] B₁ ○ᵈ μ B₂) x * (𝟭_[A] ○ᵈ 𝟭_[A]) x ^ p * f x := by    have : 0  μ_[] B₁ ○ᵈ μ B₂ * (𝟭_[A] ○ᵈ 𝟭_[A]) ^ p * (↑) ∘ f := -- positivity      mul_nonneg (mul_nonneg (dddconv_nonneg mu_nonneg mu_nonneg) <| pow_nonneg        (dddconv_nonneg Set.indicator_one_nonneg Set.indicator_one_nonneg) _) fun _  by simp    refine Fintype.sum_pos <| this.lt_iff_ne'.2 <| support_nonempty_iff.1 ?_    simp only [support_comp_eq, Set.Nonempty, and_assoc, support_mul', support_dddconv,      Set.indicator_one_nonneg, mu_nonneg, Set.support_indicator_one, support_mu,      NNReal.coe_eq_zero,iff_self, forall_const, Set.mem_inter_iff,  coe_sub, mem_coe,      support_pow' _ hp₀, hf]  set A₁ := fun s  B₁ ∩ c p A s  set A₂ := fun s  B₂ ∩ c p A s  set g : (Fin p  G)   := fun s  #(A₁ s) * #(A₂ s) with hg_def  have hg :  s, 0  g s := fun s  by rw [hg_def]; dsimp; positivity  have hgB : ∑ s, g s = #B₁ * #B₂ * ‖𝟭_[A, ] ○ᵈ 𝟭_[A]‖_[p, μ B₁ ○ᵈ μ B₂] ^ p := by    have hAdddconv : 0  𝟭_[(A : Set G), ] ○ᵈ 𝟭_[A] :=      dddconv_nonneg Set.indicator_one_nonneg Set.indicator_one_nonneg    simpa only [wLpNorm_pow_eq_sum_norm hp₀, norm_of_nonneg (hAdddconv _), NNReal.smul_def,      NNReal.coe_dddconv, NNReal.coe_comp_mu, wInner_one_eq_sum, Pi.one_apply, inner_apply',       coe_inter, conj_to_real, mul_one, sum_dddconv, sum_indicator_one, nsmul_eq_mul,      Nat.cast_mul, g, A₁, A₂] using! lemma_0 p B₁ B₂ A 1  suffices ∑ s, ⟪𝟭_[A₁ s, ] ○ᵈ 𝟭_[A₂ s], (↑) ∘ f⟫_[] * ‖𝟭_[A, ] ○ᵈ 𝟭_[A]‖_[p, μ B₁ ○ᵈ μ B₂] ^ p    < ∑ s, 𝟭_[({s | M ^ 2  g s} : Finset _)] s * g s *        (2 * ∑ x, (μ B₁ ○ᵈ μ B₂) x * (𝟭_[A, ] ○ᵈ 𝟭_[A]) x ^ p * f x) by    obtain s, -, hs := exists_lt_of_sum_lt this    refine _, inter_subset_left (s₂ := c p A s), _, inter_subset_left (s₂ := c p A s), ?_    simp only [Set.indicator_apply, boole_mul] at hs    split_ifs at hs with h; swap    · simp only [zero_mul, wInner_one_eq_sum, Function.comp_apply, RCLike.inner_apply',        RCLike.conj_to_real] at hs      have : 0  𝟭_[(A₁ s : Set G), ] ○ᵈ 𝟭_[A₂ s] :=        dddconv_nonneg Set.indicator_one_nonneg Set.indicator_one_nonneg      -- positivity      cases hs.not_ge <|        mul_nonneg (sum_nonneg fun x _  mul_nonneg (this _) <| by positivity) <| by positivity    have : (4 : ) ⁻¹ * ‖𝟭_[A, ] ○ᵈ 𝟭_[A]‖_[p, μ B₁ ○ᵈ μ B₂] ^ (2 * p) / #A ^ (2 * p)       #(A₁ s) / #B₁ * (#(A₂ s) / #B₂) := by      rw [div_mul_div_comm, le_div_iff₀ (by positivity)]      simpa [hg_def, hM_def, mul_pow, div_pow, pow_mul', show (2 : ) ^ 2 = 4 by norm_num,        mul_div_right_comm] using h    refine (lt_of_mul_lt_mul_left (hs.trans_eq' ?_) <| hg s).le, this.trans <|      mul_le_of_le_one_right ?_ <| div_le_one_of_le₀ ?_ ?_, this.trans <|      mul_le_of_le_one_left ?_ <| div_le_one_of_le₀ ?_ ?_    · simp_rw [A₁, A₂, g,  card_smul_mu, smul_dddconv, dddconv_smul,  Nat.cast_smul_eq_nsmul ,        wInner_smul_left, smul_eq_mul, star_trivial, mul_assoc, A₁, A₂]    any_goals positivity    all_goals exact Nat.cast_le.2 <| card_mono inter_subset_left  rw [ sum_mul, lemma_0, nsmul_eq_mul, Nat.cast_mul,  sum_mul, mul_right_comm,  hgB,    mul_left_comm,  mul_assoc]  simp only [Set.indicator_apply, boole_mul, mem_coe, mem_filter, mem_univ, true_and,  sum_filter,    mul_lt_mul_iff_left₀ hf, Function.comp_apply]  by_cases h :  s, g s  0  M ^ 2  g s  · rw [ sum_filter_ne_zero (s := filter _ _), Finset.filter_comm,      filter_true_of_mem fun s hs  h s (mem_filter.1 hs).2,  sum_filter_ne_zero]    refine lt_mul_of_one_lt_left (sum_pos (fun s hs  (h _ (mem_filter.1 hs).2).trans_lt' <|      by positivity) ?_) one_lt_two    rw [ sum_filter_ne_zero] at hgB    exact nonempty_of_sum_ne_zero <| hgB.trans_ne <| by positivity  push Not at h  obtain s, hs := h  suffices h : (2 : ) * ∑ s with g s < M ^ 2, g s < ∑ s, g s by    refine (le_or_lt_of_add_le_add ?_).resolve_left h.not_ge    simp_rw [ not_le,  compl_filter,  two_mul,  mul_add, sum_compl_add_sum]    rfl  rw [ lt_div_iff₀' (zero_lt_two' ), div_eq_inv_mul]  calc    ∑ s with g s < M ^ 2, g s = ∑ s with g s < M ^ 2  g s  0, sqrt (g s) * sqrt (g s)          := by simp_rw [mul_self_sqrt (hg _),  filter_filter, sum_filter_ne_zero]    _ < ∑ s with g s < M ^ 2  g s  0, M * sqrt (g s)        := sum_lt_sum_of_nonempty s, mem_filter.2 mem_univ _, hs.symm⟩⟩ ?_    _  ∑ s, M * sqrt (g s) := sum_le_univ_sum_of_nonneg fun s  by positivity    _ = M * (∑ s, sqrt #(A₁ s) * sqrt #(A₂ s))        := by simp_rw [mul_sum, g, sqrt_mul <| Nat.cast_nonneg _]    _  M * (sqrt (∑ s, #(A₁ s)) * sqrt (∑ s, #(A₂ s))) := by      gcongr; exact sum_sqrt_mul_sqrt_le _ fun i  by positivity fun i  by positivity    _ = _ := ?_  · simp only [mem_filter, mem_univ, true_and, and_imp]    exact fun s hsM hs  mul_lt_mul_of_pos_right ((sqrt_lt' hM).2 hsM) <|      sqrt_pos.2 <| (hg _).lt_of_ne' hs  rw [sum_cast_c, sum_cast_c, sqrt_mul', sqrt_mul', mul_mul_mul_comm (sqrt _), mul_self_sqrt,     mul_assoc, hM_def, div_mul_cancel₀,  sqrt_mul, mul_assoc, mul_self_sqrt, hgB, mul_right_comm,    mul_assoc]  all_goals positivity
Project
Arithmetic Progressions Almost Periodicity
License
Apache-2.0
Commit
afafc42a5326
Source
APAP/Physics/DRC.lean:97-195

Reuse this declaration

Bring the exact result into your workflow

The import identifies the source module. Your project still needs the pinned package dependency shown on this page.

What this badge means

This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.

Continue in this project

Related declarations

Project-declaredLean 4.32.0

Add Dissociated boring Energy le

AddDissociated.boringEnergy_le

Project documentation

If a finite set ss is additively dissociated, then its order-nn additive energy is at most CnnnsnC^n n^n |s|^n, where CC is the project's Chang constant. This is the quantitative dissociated-set estimate used in the proof of Chang's lemma.

additive combinatoricsarithmetic progressionsFourier analysis

Source project: Arithmetic Progressions Almost Periodicity

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Linfty almost periodicity

AlmostPeriodicity.linfty_almost_periodicity

Project documentation

An LL^\infty almost-periodicity theorem. Under the small-growth hypothesis σ[A,S]K\sigma[A,S]\le K, and for nonempty finite sets B,CB,C, there is a set of translations TT with TK4096L(C/B)/ε2S|T|\ge K^{-4096\lceil\mathcal L(|C|/|B|)\rceil/\varepsilon^2}|S|. Every tTt\in T changes the normalized convolution μA1BμC\mu_A*1_B*\mu_C by at most ε\varepsilon in LL^\infty.

additive combinatoricsarithmetic progressionsFourier analysis

Source project: Arithmetic Progressions Almost Periodicity

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Linfty almost periodicity boosted

AlmostPeriodicity.linfty_almost_periodicity_boosted

Plain-language statement

A boosted LL^\infty almost-periodicity estimate. Under σ[A,S]K\sigma[A,S]\le K, it finds a large set TT, with the stated lower bound TK4096L(C/B)k2/ε2S|T|\ge K^{-4096\lceil\mathcal L(|C|/|B|)\rceil k^2/\varepsilon^2}|S|, such that averaging the target convolution against the kk-fold convolution of μT\mu_T changes it by at most ε\varepsilon in LL^\infty.

additive combinatoricsarithmetic progressionsFourier analysis

Source project: Arithmetic Progressions Almost Periodicity

Person-level attribution pending.

View proof record