Documentation

LeanPool.NashEmbedding.NashEmbedding.Torus.Approximation.BumpConstruction

Bump construction for Theorem A #

A fixed one-dimensional bump η, its dilations η(β·) with closed-form mass identities, and the product bump ∏ₖ η(βₖ yₖ) on ℝⁿ with its Gram matrix ∫ ∂ᵢψ ∂ⱼψ (diagonal, explicit).

Main contents #

The basic one-dimensional bump #

noncomputable def NashEmbedding.bumpRadius (n : ℕ) :

Radius ρ := π / (2√n + 1); then ρ √n < π/2 for every n.

Equations
Instances For
    noncomputable def NashEmbedding.bump1D (n : ℕ) :

    The basic bump as a ContDiffBump centred at 0, rIn = ρ/2, rOut = ρ.

    Equations
    Instances For
      noncomputable def NashEmbedding.eta (n : ℕ) :
      ℝ → ℝ

      The basic bump as a function ℝ → ℝ.

      Equations
      Instances For
        theorem NashEmbedding.eta_nonneg (n : ℕ) (t : ℝ) :
        0 ≤ eta n t
        theorem NashEmbedding.eta_zero (n : ℕ) :
        eta n 0 = 1
        theorem NashEmbedding.eta_eq_zero_of_le {n : ℕ} {t : ℝ} (ht : bumpRadius n ≤ |t|) :
        eta n t = 0
        noncomputable def NashEmbedding.etaMass (n : ℕ) :

        ∫ η².

        Equations
        Instances For
          noncomputable def NashEmbedding.etaDerivMass (n : ℕ) :

          ∫ η'².

          Equations
          Instances For

            Dilations #

            noncomputable def NashEmbedding.dil (n : ℕ) (β : ℝ) :
            ℝ → ℝ

            The dilated bump η(βt).

            Equations
            Instances For
              theorem NashEmbedding.dil_contDiff (n : ℕ) (β : ℝ) :
              ContDiff ℝ (↑⊤) (dil n β)
              theorem NashEmbedding.dil_hasCompactSupport (n : ℕ) {β : ℝ} (hβ : 0 < β) :
              theorem NashEmbedding.abs_lt_of_dil_ne_zero {n : ℕ} {β t : ℝ} (hβ : 1 ≤ β) (h : dil n β t ≠ 0) :
              theorem NashEmbedding.deriv_dil (n : ℕ) (β t : ℝ) :
              deriv (dil n β) t = β * deriv (eta n) (β * t)
              theorem NashEmbedding.integral_dil_sq (n : ℕ) {β : ℝ} (hβ : 0 < β) :
              ∫ (t : ℝ), dil n β t ^ 2 = etaMass n / β
              theorem NashEmbedding.integral_deriv_dil_sq (n : ℕ) {β : ℝ} (hβ : 0 < β) :
              ∫ (t : ℝ), deriv (dil n β) t ^ 2 = β * etaDerivMass n
              theorem NashEmbedding.integral_dil_mul_deriv (n : ℕ) {β : ℝ} (hβ : 0 < β) :
              ∫ (t : ℝ), dil n β t * deriv (dil n β) t = 0

              The product bump on ℝⁿ #

              noncomputable def NashEmbedding.prodBump (n : ℕ) (β y : Fin n → ℝ) :

              The product bump ψ_β(y) = ∏ₖ η(βₖ yₖ).

              Equations
              Instances For
                theorem NashEmbedding.prodBump_contDiff {n : ℕ} (β : Fin n → ℝ) :
                ContDiff ℝ (↑⊤) (prodBump n β)
                theorem NashEmbedding.abs_lt_of_prodBump_ne_zero {n : ℕ} {β : Fin n → ℝ} (hβ : ∀ (k : Fin n), 1 ≤ β k) {y : Fin n → ℝ} (h : prodBump n β y ≠ 0) (k : Fin n) :
                theorem NashEmbedding.prodBump_hasCompactSupport {n : ℕ} {β : Fin n → ℝ} (hβ : ∀ (k : Fin n), 1 ≤ β k) :
                noncomputable def NashEmbedding.factor (n : ℕ) (β : Fin n → ℝ) (i k : Fin n) :
                ℝ → ℝ

                The k-th factor of ∂ᵢψ_β: the derivative of the dilated bump when k = i, the dilated bump itself otherwise.

                Equations
                Instances For
                  theorem NashEmbedding.prodBump_update {n : ℕ} (β y : Fin n → ℝ) (i : Fin n) (t : ℝ) :
                  prodBump n β (Function.update y i t) = dil n (β i) t * ∏ k ∈ Finset.univ.erase i, dil n (β k) (y k)
                  theorem NashEmbedding.fderiv_prodBump_single {n : ℕ} (β y : Fin n → ℝ) (i : Fin n) :
                  (fderiv ℝ (prodBump n β) y) (Pi.single i 1) = ∏ k : Fin n, factor n β i k (y k)

                  The Gram matrix #

                  noncomputable def NashEmbedding.gram {n : ℕ} (χ : (Fin n → ℝ) → ℝ) (i j : Fin n) :

                  The Gram matrix ∫ ∂ᵢχ ∂ⱼχ of a real function on ℝⁿ.

                  Equations
                  Instances For
                    theorem NashEmbedding.gram_prodBump {n : ℕ} {β : Fin n → ℝ} (hβ : ∀ (k : Fin n), 0 < β k) (i j : Fin n) :
                    gram (prodBump n β) i j = if i = j then β i * etaDerivMass n * ∏ k ∈ Finset.univ.erase i, etaMass n / β k else 0

                    The Gram matrix of the product bump is diagonal with explicit entries.

                    Rotation by a matrix with |det| = 1 #

                    noncomputable def NashEmbedding.rotBump (n : ℕ) (β : Fin n → ℝ) (M : Matrix (Fin n) (Fin n) ℝ) (x : Fin n → ℝ) :

                    χ(x) = ψ_β(M x).

                    Equations
                    Instances For
                      theorem NashEmbedding.mulVec_eq_clm {n : ℕ} (M : Matrix (Fin n) (Fin n) ℝ) :
                      (fun (x : Fin n → ℝ) => M.mulVec x) = ⇑(LinearMap.toContinuousLinearMap M.mulVecLin)
                      theorem NashEmbedding.mulVec_contDiff {n : ℕ} (M : Matrix (Fin n) (Fin n) ℝ) :
                      ContDiff ℝ ↑⊤ fun (x : Fin n → ℝ) => M.mulVec x
                      theorem NashEmbedding.rotBump_contDiff {n : ℕ} (β : Fin n → ℝ) (M : Matrix (Fin n) (Fin n) ℝ) :
                      ContDiff ℝ (↑⊤) (rotBump n β M)
                      theorem NashEmbedding.fderiv_rotBump_single {n : ℕ} (β : Fin n → ℝ) (M : Matrix (Fin n) (Fin n) ℝ) (x : Fin n → ℝ) (i : Fin n) :
                      (fderiv ℝ (rotBump n β M) x) (Pi.single i 1) = ∑ k : Fin n, M k i * (fderiv ℝ (prodBump n β) (M.mulVec x)) (Pi.single k 1)
                      theorem NashEmbedding.det_ne_zero_of_abs_det_eq_one {n : ℕ} {M : Matrix (Fin n) (Fin n) ℝ} (hdet : |M.det| = 1) :
                      M.det ≠ 0
                      theorem NashEmbedding.integrable_comp_mulVec {n : ℕ} {M : Matrix (Fin n) (Fin n) ℝ} (hdet : |M.det| = 1) {G : (Fin n → ℝ) → ℝ} (hG : Continuous G) (hGi : MeasureTheory.Integrable G MeasureTheory.volume) :
                      theorem NashEmbedding.integral_comp_mulVec {n : ℕ} {M : Matrix (Fin n) (Fin n) ℝ} (hdet : |M.det| = 1) {G : (Fin n → ℝ) → ℝ} (hG : Continuous G) :
                      ∫ (x : Fin n → ℝ), G (M.mulVec x) = ∫ (y : Fin n → ℝ), G y
                      noncomputable def NashEmbedding.prodBumpPD (n : ℕ) (β : Fin n → ℝ) (k : Fin n) (y : Fin n → ℝ) :

                      The k-th partial derivative of the product bump, as a function.

                      Equations
                      Instances For
                        theorem NashEmbedding.prodBumpPD_continuous {n : ℕ} (β : Fin n → ℝ) (k : Fin n) :
                        theorem NashEmbedding.prodBumpPD_hasCompactSupport {n : ℕ} {β : Fin n → ℝ} (hβ : ∀ (k : Fin n), 1 ≤ β k) (k : Fin n) :
                        theorem NashEmbedding.gram_rotBump {n : ℕ} {β : Fin n → ℝ} (hβ : ∀ (k : Fin n), 1 ≤ β k) {M : Matrix (Fin n) (Fin n) ℝ} (hdet : |M.det| = 1) (i j : Fin n) :
                        gram (rotBump n β M) i j = ∑ k : Fin n, M k i * M k j * (β k * etaDerivMass n * ∏ l ∈ Finset.univ.erase k, etaMass n / β l)

                        Gram of the rotated bump: Gram_χ = Mᵀ Gram_ψ M, with Gram_ψ diagonal.

                        Amplitude #

                        theorem NashEmbedding.gram_const_mul {n : ℕ} {χ : (Fin n → ℝ) → ℝ} (hχ : Differentiable ℝ χ) (A : ℝ) (i j : Fin n) :
                        gram (fun (x : Fin n → ℝ) => A * χ x) i j = A ^ 2 * gram χ i j

                        Spectral assembly #

                        Orthogonality facts for a real orthogonal (unitary) matrix.

                        theorem NashEmbedding.row_sq_sum_of_unitary {n : ℕ} {U : Matrix (Fin n) (Fin n) ℝ} (hU : U ∈ Matrix.unitaryGroup (Fin n) ℝ) (i : Fin n) :
                        ∑ k : Fin n, U i k ^ 2 = 1
                        theorem NashEmbedding.sum_sq_transpose_mulVec_of_unitary {n : ℕ} {U : Matrix (Fin n) (Fin n) ℝ} (hU : U ∈ Matrix.unitaryGroup (Fin n) ℝ) (x : Fin n → ℝ) :
                        ∑ k : Fin n, U.transpose.mulVec x k ^ 2 = ∑ j : Fin n, x j ^ 2
                        theorem NashEmbedding.sum_abs_mul_abs_le_one_of_unitary {n : ℕ} {U : Matrix (Fin n) (Fin n) ℝ} (hU : U ∈ Matrix.unitaryGroup (Fin n) ℝ) (i j : Fin n) :
                        ∑ k : Fin n, |U i k| * |U j k| ≤ 1

                        Row-wise Cauchy–Schwarz: ∑ₖ |Uᵢₖ| |Uⱼₖ| ≤ 1.

                        theorem NashEmbedding.exists_bump_gram_approx {n : ℕ} {B : Matrix (Fin n) (Fin n) ℝ} (hB : B.PosSemidef) {K : ℝ} (hK : 0 < K) :
                        ∃ (χ : (Fin n → ℝ) → ℝ), ContDiff ℝ (↑⊤) χ ∧ HasCompactSupport χ ∧ (∀ (x : Fin n → ℝ), χ x ≠ 0 → ∀ (j : Fin n), |x j| < Real.pi) ∧ ∀ (i j : Fin n), |gram χ i j - B i j| ≤ K

                        Bump with prescribed Gram matrix up to K. For every real PSD matrix B and every K > 0 there is a C^∞ compactly supported χ with supp χ ⊂ (-π,π)ⁿ and |∫ ∂ᵢχ ∂ⱼχ − Bᵢⱼ| ≤ K for all i, j.