Skip to main content
All packages

fpvandoorn/carleson

carleson

A formalized proof of Carleson's theorem in Lean

Therefore indexed 781 complete source declarations from the exact package revision. Individual authorship and independent verification remain unset.

Research project101 GitHub starsApache-2.038 indexed versionsRepositoryFull history on Reservoir

Head version

74ef907d6bdb

74ef907d6bdb60797b88655bc16e3032fb835fdc

Toolchain
leanprover/lean4:v4.32.0
Revision date
23 Jul 2026
Dependencies
10
Versions
38

External build observation

Exact head commit and toolchain

No Reservoir build observation was found for this exact commit and toolchain. This is not evidence of failure.

Pin this source in lakefile.lean

require carleson from git "https://github.com/fpvandoorn/carleson.git" @ "74ef907d6bdb60797b88655bc16e3032fb835fdc"

Source declarations

781 indexed proofs

Package history

Showing 101 to 120 of 781 declarations.

lemma

dirichletKernel'_periodic

Open the record for the exact Lean statement and complete source.

Carleson.Classical.DirichletKernel · Carleson/Classical/DirichletKernel.lean:33

lemma

dirichletKernel_eq

Second part of Lemma 11.1.8 (Dirichlet kernel) from the paper.

Carleson.Classical.DirichletKernel · Carleson/Classical/DirichletKernel.lean:69

lemma

dirichletKernel_eq_ae

Second part of Lemma 11.1.8 (Dirichlet kernel) from the paper. -/ lemma dirichletKernel_eq {x : ℝ} (h : cexp (I * x) ≠ 1) : dirichletKernel N x = dirichletKernel' N x := by have : (cexp (1 / 2 * I * x) - cexp (-1 / 2 * I * x)) * dirichletKernel N x = cexp ((N + 1 / 2) * I * x) - cexp (-(N + 1 / 2) * I * x) := by calc (cexp (1 / 2 * I * x) - cexp (-1 / 2 * I * x)) * dirichletKernel N x _ = ∑ n ∈ Icc (-(N : ℤ)) N, (cexp ((n + 1 / 2) * I * ↑x) - cexp ((n - 1 / 2) * I * ↑x)) := by rw [dirichletKernel, mul_sum] congr 1 with n simp [sub_mul, ← exp_add, ← exp_add] congr 2 <;> · ring_nf congr 1 rw [mul_assoc, mul_assoc] congr rw_mod_cast [← mul_assoc, mul_comm, ← mul_assoc, inv_mul_cancel₀, one_mul] exact Real.pi_pos.ne.symm _ = ∑ n ∈ Icc (-(N : ℤ)) N, cexp ((n + 1 / 2) * I * ↑x) - ∑ n ∈ Icc (-(N : ℤ)) N, cexp ((n - 1 / 2) * I * ↑x) := by rw [sum_sub_distrib] _ = cexp ((N + 1 / 2) * I * x) - cexp (-(N + 1 / 2) * I * x) := by rw [← sum_Ico_add_eq_sum_Icc, ← sum_Ioc_add_eq_sum_Icc, add_sub_add_comm, ← zero_add (cexp ((N + 1 / 2) * I * ↑x) - cexp (-(N + 1 / 2) * I * ↑x))] · congr 2 · rw [sub_eq_zero] conv => lhs; rw [← Int.add_sub_cancel (-(N : ℤ)) 1, sub_eq_add_neg, ← Int.add_sub_cancel (Nat.cast N) 1, sub_eq_add_neg, ← sum_Ico_add'] congr 2 with n · rw [mem_Ico, mem_Ioc, Int.lt_iff_add_one_le, add_le_add_iff_right, ← mem_Icc, Int.lt_iff_add_one_le, ← mem_Icc] simp · simp only [Int.reduceNeg, Int.cast_add, Int.cast_neg, Int.cast_one, one_div, add_assoc, sub_eq_add_neg] norm_num · rw [neg_add_rev, add_comm, Int.cast_neg, sub_eq_add_neg] norm_cast all_goals simp have h' : (cexp (1 / 2 * I * x) - cexp (-1 / 2 * I * x)) ≠ 0 := by contrapose! h rw [sub_eq_zero] at h calc cexp (I * ↑x) _ = cexp (1 / 2 * I * ↑x) * cexp (1 / 2 * I * ↑x) := by rw [← exp_add, mul_assoc, ← mul_add] ring_nf _ = cexp (1 / 2 * I * ↑x) * cexp (-1 / 2 * I * ↑x) := by congr 2 _ = 1 := by rw [← exp_add] ring_nf exact exp_zero rw [dirichletKernel'] apply mul_left_cancel₀ h' rw [this, mul_add, sub_eq_add_neg] congr · rw [mul_div] apply eq_div_of_mul_eq · contrapose! h rwa [sub_eq_zero, neg_mul, exp_neg, eq_comm, inv_eq_one] at h ring_nf rw [← exp_add, ← exp_add, ← exp_add] congr 2 <;> ring · rw [mul_div] apply eq_div_of_mul_eq (sub_ne_zero_of_ne h.symm) ring_nf rw [← exp_add, ← exp_add, ← exp_add, neg_add_eq_sub] congr 2 <;> ring

lemma dirichletKernel'_eq_zero {x : ℝ} (h : cexp (I * x) = 1) : dirichletKernel' N x = 0 := by simp [dirichletKernel', exp_neg, h]

/- "a.e." version of previous lemma.

Carleson.Classical.DirichletKernel · Carleson/Classical/DirichletKernel.lean:138

lemma

norm_dirichletKernel_le

Open the record for the exact Lean statement and complete source.

Carleson.Classical.DirichletKernel · Carleson/Classical/DirichletKernel.lean:154

lemma

Hilbert_kernel_bound

Open the record for the exact Lean statement and complete source.

Carleson.Classical.HilbertKernel · Carleson/Classical/HilbertKernel.lean:45

lemma

Hilbert_kernel_regularity_main_part

Open the record for the exact Lean statement and complete source.

Carleson.Classical.HilbertKernel · Carleson/Classical/HilbertKernel.lean:87

lemma

Hilbert_kernel_regularity

Open the record for the exact Lean statement and complete source.

Carleson.Classical.HilbertKernel · Carleson/Classical/HilbertKernel.lean:208

lemma

niceKernel_eq_inv

Open the record for the exact Lean statement and complete source.

Carleson.Classical.HilbertStrongType · Carleson/Classical/HilbertStrongType.lean:109

lemma

niceKernel_lowerBound

Open the record for the exact Lean statement and complete source.

Carleson.Classical.HilbertStrongType · Carleson/Classical/HilbertStrongType.lean:151

lemma

spectral_projection_bound

Open the record for the exact Lean statement and complete source.

Carleson.Classical.HilbertStrongType · Carleson/Classical/HilbertStrongType.lean:198

lemma

young_convolution

Lemma 11.3.3.

Carleson.Classical.HilbertStrongType · Carleson/Classical/HilbertStrongType.lean:291

lemma

eLpNorm_convolution_dirichletApprox

The convolution with dirichletApprox is controlled on (0, 2π] in L^2 norm. This follows from the fact that it coincides (up to a constant) with approxHilbertTransform, which is essentially an average of Fourier projections (which are all contractions in L^2).

Carleson.Classical.HilbertStrongType · Carleson/Classical/HilbertStrongType.lean:459

Static source extraction only. Package code was not executed. Every result keeps its complete declaration, exact file and line range, commit, toolchain, license file, and content hash.