Skip to main content
YaelDillies/APAP
Source indexedlemma · leanprover/lean4:v4.32.0

AlmostPeriodicity.almost_periodicity

APAP.Physics.AlmostPeriodicity · APAP/Physics/AlmostPeriodicity.lean:388 to 421

Mathematical statement

Exact Lean statement

public lemma almost_periodicity (ε : ℝ) (hε : 0 < ε) (hε' : ε ≤ 1) (m : ℕ) (f : G → ℂ)
    (hK₂ : 2 ≤ K) (hK : σ[A, S] ≤ K) :
    ∃ T : Finset G,
      K ^ (-512 * m / ε ^ 2 : ℝ) * #S ≤ #T ∧
        ∀ t ∈ T, ‖τ t (mu A ∗ᵈ f) - mu A ∗ᵈ f‖_[2 * m] ≤ ε * ‖f‖_[2 * m]

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
public lemma almost_periodicity (ε : ) (hε : 0 < ε) (hε' : ε  1) (m : ) (f : G  ℂ)    (hK₂ : 2  K) (hK : σ[A, S]  K) :     T : Finset G,      K ^ (-512 * m / ε ^ 2 : ) * #S  #T          t  T, ‖τ t (mu A ∗ᵈ f) - mu A ∗ᵈ f‖_[2 * m]  ε * ‖f‖_[2 * m] := by  obtain rfl | hm := m.eq_zero_or_pos  · exact S, by simp  obtain rfl | hA := A.eq_empty_or_nonempty  · refine univ, ?_, fun t _  ?_    · have : K ^ ((-512 : ) * m / ε ^ 2)  1 := by        refine Real.rpow_le_one_of_one_le_of_nonpos (one_le_two.trans hK₂) ?_        rw [neg_mul, neg_div, Right.neg_nonpos_iff]        positivity      refine (mul_le_mul_of_nonneg_right this (Nat.cast_nonneg _)).trans ?_      rw [one_mul, Nat.cast_le]      exact card_le_univ _    simp only [mu_empty, zero_ddconv, translate_zero_right, sub_self, dLpNorm_zero]    positivity  let k := ⌈(64 : ) * m // 2) ^ 2⌉₊  have hk : k  0 := by positivity  let L := l k m (ε / 2) f A  have : (#A : ) ^ k / 2  #L := lemma28 (half_pos hε) hm (Nat.le_ceil _)  have hL : L.Nonempty := by    rw [ card_pos,  @Nat.cast_pos ]    exact this.trans_lt' (by positivity)  obtain a, ha, hL' := big_shifts S _ hk hL (filter_subset _ _)  refine ({t | (a + fun _  -t)  L} : Finset _), ?_, ?_  · simp_rw [sub_eq_add_neg] at hL'    exact T_bound hK₂ #L #S #A #(A + S) _ rfl hL' this      (by rw [ cast_addConst_mul_card]; gcongr) hA.card_pos hε hε' hm  intro t ht  simp only [mem_filter, mem_univ, true_and] at ht  have := just_the_triangle_inequality ha ht hk.bot_lt hm  rwa [neg_neg, mul_div_cancel₀ _ (two_ne_zero' )] at this