Documentation

LeanPool.PhaseRetrieval.DimdPoly.Internal.ExactModulusRecovery

ExactModulusRecovery #

ExactModulusRecovery #

WIP scaffold for the STFT/ambiguity bridge, exposing the finite-facing corollary needed by downstream modules.

WIP phase-space API stubs #

These declarations freeze the proof-facing objects from the exact-modulus The definitions are only placeholders; the theorem statements below are the real work items needed to replace coeff_kernel_of_exact_modulus_recovery_skappa_ae_wip.

noncomputable def DimdPolyLEAN.realHermiteGenerating (t : ℝ) (u : ℂ) :

realHermiteGenerating: real Hermite Generating.

Equations
Instances For
    theorem DimdPolyLEAN.realHermiteGenerating_stft_integral_raw (x ω : ℝ) (u v : ℂ) :
    ∫ (t : ℝ), realHermiteGenerating t u * realHermiteGenerating (t - x) v * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t)) = Complex.exp (-↑x ^ 2 / 2 - ↑√2 * ↑x * v - (u ^ 2 + v ^ 2) / 2 + (↑x + ↑√2 * (u + v) - 2 * ↑Real.pi * Complex.I * ↑ω) ^ 2 / 4)
    theorem DimdPolyLEAN.realHermiteGenerating_integral_shift_mul_modulated_completed (u v : ℂ) (x ω : ℝ) :
    ∫ (t : ℝ), realHermiteGenerating t u * realHermiteGenerating (t - x) v * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t)) = Complex.exp (-↑x ^ 2 / 2 - ↑√2 * ↑x * v - (u ^ 2 + v ^ 2) / 2 + (↑x + ↑√2 * (u + v) - 2 * ↑Real.pi * Complex.I * ↑ω) ^ 2 / 4)
    theorem DimdPolyLEAN.realHermiteGenerating_integral_shift_mul_modulated (u v : ℂ) (x ω : ℝ) :
    ∫ (t : ℝ), realHermiteGenerating t u * realHermiteGenerating (t - x) v * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t)) = Complex.exp (-↑x ^ 2 / 2 - ↑√2 * ↑x * v - (u ^ 2 + v ^ 2) / 2 - (↑x + ↑√2 * (u + v) - 2 * ↑Real.pi * Complex.I * ↑ω) ^ 2 / (4 * -1))
    theorem DimdPolyLEAN.realHermiteGenerating_stft_integral_kernel (x ω : ℝ) (u v : ℂ) :
    ∫ (t : ℝ), realHermiteGenerating t u * realHermiteGenerating (t - x) v * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t)) = Complex.exp (-↑Real.pi * Complex.I * (↑x * ↑ω)) * Complex.exp (u * v + (↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2 * u - star ((↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2) * v) * ↑(Real.exp (-((x ^ 2 + (2 * Real.pi) ^ 2 * ω ^ 2) / 4)))
    theorem DimdPolyLEAN.realHermiteGenerating_ambiguity_integral_raw (x ω : ℝ) (u v : ℂ) :
    ∫ (t : ℝ), realHermiteGenerating (t + x / 2) u * realHermiteGenerating (t - x / 2) v * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t)) = Complex.exp (-↑x ^ 2 / 4 + ↑√2 * ↑x * u / 2 - ↑√2 * ↑x * v / 2 - (u ^ 2 + v ^ 2) / 2 + (↑√2 * (u + v) - 2 * ↑Real.pi * Complex.I * ↑ω) ^ 2 / 4)
    theorem DimdPolyLEAN.realHermiteGenerating_ambiguity_integral_linear_form (x ω : ℝ) (u v : ℂ) :
    ∫ (t : ℝ), realHermiteGenerating (t + x / 2) u * realHermiteGenerating (t - x / 2) v * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t)) = Complex.exp (-((↑x ^ 2 + (2 * ↑Real.pi) ^ 2 * ↑ω ^ 2) / 4)) * Complex.exp ((↑√2 * ↑x / 2 - ↑√2 * ↑Real.pi * Complex.I * ↑ω) * u - (↑√2 * ↑x / 2 + ↑√2 * ↑Real.pi * Complex.I * ↑ω) * v + u * v)
    theorem DimdPolyLEAN.realHermiteGenerating_ambiguity_integral_kernel (x ω : ℝ) (u w : ℂ) :
    ∫ (t : ℝ), realHermiteGenerating (t + x / 2) u * realHermiteGenerating (t - x / 2) w * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t)) = Complex.exp (u * w + (↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2 * u - star ((↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2) * w) * ↑(Real.exp (-((x ^ 2 + (2 * Real.pi) ^ 2 * ω ^ 2) / 4)))
    theorem DimdPolyLEAN.realHermiteGenerating_ambiguity_integral_conj_raw (x ω : ℝ) (u v : ℂ) :
    ∫ (t : ℝ), realHermiteGenerating (t + x / 2) u * star (realHermiteGenerating (t - x / 2) v) * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t)) = Complex.exp (-↑x ^ 2 / 4 + ↑√2 * ↑x * u / 2 - ↑√2 * ↑x * star v / 2 - (u ^ 2 + star v ^ 2) / 2 + (↑√2 * (u + star v) - 2 * ↑Real.pi * Complex.I * ↑ω) ^ 2 / 4)
    theorem DimdPolyLEAN.realHermiteGenerating_ambiguity_integral_conj_kernel (x ω : ℝ) (u v : ℂ) :
    ∫ (t : ℝ), realHermiteGenerating (t + x / 2) u * star (realHermiteGenerating (t - x / 2) v) * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t)) = Complex.exp (u * star v + (↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2 * u - (↑x + 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2 * star v) * ↑(Real.exp (-((x ^ 2 + (2 * Real.pi) ^ 2 * ω ^ 2) / 4)))
    theorem DimdPolyLEAN.realHermiteGenerating_ambiguity_integral_independent_kernel (x ω : ℝ) (u w : ℂ) :
    ∫ (t : ℝ), realHermiteGenerating (t + x / 2) u * realHermiteGenerating (t - x / 2) w * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t)) = Complex.exp (u * w + (↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2 * u - star ((↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2) * w) * ↑(Real.exp (-((x ^ 2 + (2 * Real.pi) ^ 2 * ω ^ 2) / 4)))

    shiftedGeneratingRightDerivBoundConstant: shifted Generating Right Deriv Bound Constant.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      noncomputable def DimdPolyLEAN.shiftedGeneratingRightDerivBound (u w0 : ℂ) (x R t : ℝ) :

      shiftedGeneratingRightDerivBound: shifted Generating Right Deriv Bound.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem DimdPolyLEAN.hasDerivAt_integral_fixed_mul_shifted_modulated_realHermiteGenerating_right_of_bound (phi : ℝ → ℂ) (x ω : ℝ) (w0 : ℂ) {s : Set ℂ} {bound : ℝ → ℝ} (hs : s ∈ nhds w0) (hF_meas : ∀ᶠ (z : ℂ) in nhds w0, MeasureTheory.AEStronglyMeasurable (fun (t : ℝ) => phi t * realHermiteGenerating (t - 1 / 2 * x) z * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))) MeasureTheory.volume) (hF_int : MeasureTheory.Integrable (fun (t : ℝ) => phi t * realHermiteGenerating (t - 1 / 2 * x) w0 * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))) MeasureTheory.volume) (hF'_meas : MeasureTheory.AEStronglyMeasurable (fun (t : ℝ) => phi t * ((↑√2 * ↑(t - 1 / 2 * x) - w0) * realHermiteGenerating (t - 1 / 2 * x) w0) * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))) MeasureTheory.volume) (h_bound : ∀ᵐ (t : ℝ), ∀ z ∈ s, ‖phi t * ((↑√2 * ↑(t - 1 / 2 * x) - z) * realHermiteGenerating (t - 1 / 2 * x) z) * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))‖ ≤ bound t) (bound_integrable : MeasureTheory.Integrable bound MeasureTheory.volume) :
        HasDerivAt (fun (z : ℂ) => ∫ (t : ℝ), phi t * realHermiteGenerating (t - 1 / 2 * x) z * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))) (∫ (t : ℝ), phi t * ((↑√2 * ↑(t - 1 / 2 * x) - w0) * realHermiteGenerating (t - 1 / 2 * x) w0) * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))) w0
        theorem DimdPolyLEAN.hasDerivAt_integral_shifted_generating_mul_modulated_right_of_bound (u w0 : ℂ) (x ω : ℝ) {s : Set ℂ} {bound : ℝ → ℝ} (hs : s ∈ nhds w0) (hF_meas : ∀ᶠ (z : ℂ) in nhds w0, MeasureTheory.AEStronglyMeasurable (fun (t : ℝ) => realHermiteGenerating (t + 1 / 2 * x) u * realHermiteGenerating (t - 1 / 2 * x) z * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))) MeasureTheory.volume) (hF_int : MeasureTheory.Integrable (fun (t : ℝ) => realHermiteGenerating (t + 1 / 2 * x) u * realHermiteGenerating (t - 1 / 2 * x) w0 * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))) MeasureTheory.volume) (hF'_meas : MeasureTheory.AEStronglyMeasurable (fun (t : ℝ) => realHermiteGenerating (t + 1 / 2 * x) u * ((↑√2 * ↑(t - 1 / 2 * x) - w0) * realHermiteGenerating (t - 1 / 2 * x) w0) * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))) MeasureTheory.volume) (h_bound : ∀ᵐ (t : ℝ), ∀ z ∈ s, ‖realHermiteGenerating (t + 1 / 2 * x) u * ((↑√2 * ↑(t - 1 / 2 * x) - z) * realHermiteGenerating (t - 1 / 2 * x) z) * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))‖ ≤ bound t) (bound_integrable : MeasureTheory.Integrable bound MeasureTheory.volume) :
        HasDerivAt (fun (z : ℂ) => ∫ (t : ℝ), realHermiteGenerating (t + 1 / 2 * x) u * realHermiteGenerating (t - 1 / 2 * x) z * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))) (∫ (t : ℝ), realHermiteGenerating (t + 1 / 2 * x) u * ((↑√2 * ↑(t - 1 / 2 * x) - w0) * realHermiteGenerating (t - 1 / 2 * x) w0) * Complex.exp (-(2 * ↑Real.pi) * Complex.I * ↑(inner ℝ ω t))) w0
        theorem DimdPolyLEAN.hasDerivAt_integral_shifted_generating_mul_modulated_right_closed (u w0 : ℂ) (x ω : ℝ) :
        HasDerivAt (fun (w : ℂ) => ∫ (t : ℝ), realHermiteGenerating (t + x / 2) u * realHermiteGenerating (t - x / 2) w * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t))) ((u - star ((↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2)) * Complex.exp (u * w0 + (↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2 * u - star ((↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2) * w0) * ↑(Real.exp (-((x ^ 2 + (2 * Real.pi) ^ 2 * ω ^ 2) / 4)))) w0
        theorem DimdPolyLEAN.hasDerivAt_integral_shifted_generating_mul_modulated_left_closed (u0 w : ℂ) (x ω : ℝ) :
        HasDerivAt (fun (u : ℂ) => ∫ (t : ℝ), realHermiteGenerating (t + x / 2) u * realHermiteGenerating (t - x / 2) w * Complex.exp (-(2 * ↑Real.pi) * Complex.I * (↑ω * ↑t))) ((w + (↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2) * Complex.exp (u0 * w + (↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2 * u0 - star ((↑x - 2 * ↑Real.pi * Complex.I * ↑ω) / ↑√2) * w) * ↑(Real.exp (-((x ^ 2 + (2 * Real.pi) ^ 2 * ω ^ 2) / 4)))) u0
        theorem DimdPolyLEAN.iteratedDeriv_pow_at_zero (m n : ℕ) :
        iteratedDeriv m (fun (w : ℂ) => w ^ n) 0 = if m = n then ↑n.factorial else 0
        noncomputable def DimdPolyLEAN.realHermite1D (n : ℕ) (t : ℝ) :

        realHermite1D: real Hermite1 D.

        Equations
        Instances For
          noncomputable def DimdPolyLEAN.complexMonomialGaussian (k : ℕ) (t : ℝ) :

          complexMonomialGaussian: complex monomial gaussian.

          Equations
          Instances For
            theorem DimdPolyLEAN.integral_real_pow_exp_neg_sq_of_even {n : ℕ} (heven : Even n) :
            ∫ (x : ℝ), x ^ n * Real.exp (-x ^ 2) = Real.Gamma ((↑n + 1) / 2)
            theorem DimdPolyLEAN.complex_monomial_gaussian_finite_bilinear_integral_eq_ite (s t : Finset ℕ) (a b : ℕ → ℂ) :
            ∫ (x : ℝ), ∑ k ∈ s, ∑ l ∈ t, a k * b l * (complexMonomialGaussian k x * complexMonomialGaussian l x) = ∑ k ∈ s, ∑ l ∈ t, a k * b l * if Even (k + l) then ↑(Real.Gamma ((↑(k + l) + 1) / 2)) else 0
            theorem DimdPolyLEAN.complex_monomial_gaussian_finite_bilinear_integral_eq_zero_of_odd (s t : Finset ℕ) (a b : ℕ → ℂ) (hodd : ∀ k ∈ s, ∀ l ∈ t, Odd (k + l)) :
            ∫ (x : ℝ), ∑ k ∈ s, ∑ l ∈ t, a k * b l * (complexMonomialGaussian k x * complexMonomialGaussian l x) = 0
            theorem DimdPolyLEAN.complex_monomial_gaussian_finite_bilinear_integral_eq_even_moments (s t : Finset ℕ) (a b : ℕ → ℂ) (heven : ∀ k ∈ s, ∀ l ∈ t, Even (k + l)) :
            ∫ (x : ℝ), ∑ k ∈ s, ∑ l ∈ t, a k * b l * (complexMonomialGaussian k x * complexMonomialGaussian l x) = ∑ k ∈ s, ∑ l ∈ t, a k * b l * ↑(Real.Gamma ((↑(k + l) + 1) / 2))
            theorem DimdPolyLEAN.realHermiteGenerating_iteratedDeriv_zero_expansion (n : ℕ) (t : ℝ) :
            iteratedDeriv n (realHermiteGenerating t) 0 = ∑ k ∈ Finset.range (n + 1), ↑(Real.pi ^ (-(1 / 4))) * (↑(n.choose k) * ↑√2 ^ k * iteratedDeriv (n - k) (fun (u : ℂ) => Complex.exp (-u ^ 2 / 2)) 0) * (↑t ^ k * Complex.exp (-(↑t ^ 2 / 2)))

            realHermiteGeneratingExpansionCoeff: real Hermite Generating Expansion Coeff.

            Equations
            Instances For
              theorem DimdPolyLEAN.realHermiteGeneratingExpansionCoeff_eq_of_even_sub {n k : ℕ} (heven : Even (n - k)) :
              realHermiteGeneratingExpansionCoeff n k = ↑(Real.pi ^ (-(1 / 4))) * (↑(n.choose k) * ↑√2 ^ k * ((-1) ^ ((n - k) / 2) * ↑(n - k - 1).doubleFactorial))
              theorem DimdPolyLEAN.realHermiteGeneratingExpansionCoeff_eq_even_add_closed {n k : ℕ} (hk : k ≤ n) (heven : Even (n + k)) :
              realHermiteGeneratingExpansionCoeff n k = ↑(Real.pi ^ (-(1 / 4))) * (↑(n.choose k) * ↑√2 ^ k * ((-1) ^ ((n - k) / 2) * ↑(n - k - 1).doubleFactorial))

              standardGaussianMoment: standard Gaussian Moment.

              Equations
              Instances For
                noncomputable def DimdPolyLEAN.realHermiteTensorRep {d : ℕ} (alpha : Idx d) :
                RealVec d → ℂ

                realHermiteTensorRep: real Hermite Tensor Rep.

                Equations
                Instances For
                  noncomputable def DimdPolyLEAN.varphiKappa {d : ℕ} (kappa : MultiIndex d) :
                  ↥(L2Real d)

                  varphiKappa: varphi Kappa.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    noncomputable def DimdPolyLEAN.realHermiteTensorL2 {d : ℕ} (alpha : Idx d) :
                    ↥(L2Real d)

                    realHermiteTensorL2: real Hermite Tensor L2.

                    Equations
                    Instances For
                      noncomputable def DimdPolyLEAN.bKappaSeriesRep {d : ℕ} (kappa : MultiIndex d) (U : Skappa d kappa) :
                      RealVec d → ℂ

                      bKappaSeriesRep: b Kappa Series Rep.

                      Equations
                      Instances For
                        noncomputable def DimdPolyLEAN.bKappa {d : ℕ} (kappa : MultiIndex d) (U : Skappa d kappa) :
                        ↥(L2Real d)

                        bKappa: b Kappa.

                        Equations
                        Instances For
                          noncomputable def DimdPolyLEAN.bKappaRep {d : ℕ} (kappa : MultiIndex d) (U : Skappa d kappa) :
                          RealVec d → ℂ

                          bKappaRep: b Kappa Rep.

                          Equations
                          Instances For
                            theorem DimdPolyLEAN.bKappa_smul {d : ℕ} (kappa : MultiIndex d) (w : ℂ) (U : Skappa d kappa) :
                            bKappa kappa (w • U) = w • bKappa kappa U
                            theorem DimdPolyLEAN.realHermiteTensorL2_orthonormal_of_memLp_integral {d : ℕ} (hmem : ∀ (alpha : Idx d), MeasureTheory.MemLp (realHermiteTensorRep alpha) 2 MeasureTheory.volume) (hinner : ∀ (alpha beta : Idx d), ∫ (x : RealVec d), realHermiteTensorRep beta x * star (realHermiteTensorRep alpha x) = if alpha = beta then 1 else 0) :
                            Orthonormal ℂ fun (alpha : Idx d) => realHermiteTensorL2 alpha
                            theorem DimdPolyLEAN.realHermiteTensorRep_inner_of_realHermite1D_inner {d : ℕ} (alpha beta : Idx d) (hinner1 : ∀ (n m : ℕ), ∫ (t : ℝ), realHermite1D m t * star (realHermite1D n t) = if n = m then 1 else 0) :
                            ∫ (x : RealVec d), realHermiteTensorRep beta x * star (realHermiteTensorRep alpha x) = if alpha = beta then 1 else 0
                            theorem DimdPolyLEAN.summable_realHermiteTensorL2_coeff_smul_of_orthonormal {d : ℕ} (kappa : MultiIndex d) (horth : Orthonormal ℂ fun (alpha : Idx d) => realHermiteTensorL2 alpha) (U : Skappa d kappa) :
                            Summable fun (alpha : Idx d) => coeffSkappa U alpha • realHermiteTensorL2 alpha
                            theorem DimdPolyLEAN.bKappa_coeff_recovery_of_realHermite_orthonormal {d : ℕ} (kappa : MultiIndex d) (horth : Orthonormal ℂ fun (alpha : Idx d) => realHermiteTensorL2 alpha) (U : Skappa d kappa) (beta : Idx d) :
                            theorem DimdPolyLEAN.bKappa_injective_of_realHermite_coeff_recovery {d : ℕ} (kappa : MultiIndex d) (hcoeff : ∀ (U : Skappa d kappa) (alpha : Idx d), coeffSkappa U alpha = inner ℂ (realHermiteTensorL2 alpha) (bKappa kappa U)) :
                            theorem DimdPolyLEAN.bKappaRep_isL2Rep {d : ℕ} (kappa : MultiIndex d) (U : Skappa d kappa) :
                            IsL2Rep (bKappa kappa U) (bKappaRep kappa U)
                            noncomputable def DimdPolyLEAN.TKappa {d : ℕ} :
                            PhaseSpace d → Cd d

                            TKappa: T Kappa.

                            Equations
                            Instances For
                              noncomputable def DimdPolyLEAN.QKappa {d : ℕ} :

                              QKappa: Q Kappa.

                              Equations
                              Instances For
                                noncomputable def DimdPolyLEAN.WKappa {d : ℕ} :

                                WKappa: W Kappa.

                                Equations
                                Instances For
                                  theorem DimdPolyLEAN.WKappa_pos {d : ℕ} (ξ : PhaseSpace d) :
                                  0 < WKappa ξ
                                  noncomputable def DimdPolyLEAN.phaseSpacePolyEval {d : ℕ} (ξ : PhaseSpace d) :
                                  Fin d ⊕ Fin d → ℂ

                                  phaseSpacePolyEval: phase Space Poly Eval.

                                  Equations
                                  Instances For
                                    noncomputable def DimdPolyLEAN.PKappa {d : ℕ} (kappa : MultiIndex d) :

                                    PKappa: P Kappa.

                                    Equations
                                    Instances For
                                      theorem DimdPolyLEAN.stft_model_modulus {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) (U : Skappa d kappa) (ξ : PhaseSpace d) :
                                      ‖stftRep (varphiKappa kappa) (bKappa kappa U) ξ‖ = WKappa ξ * ‖toFun kappa U (TKappa ξ)‖
                                      theorem DimdPolyLEAN.windowAmbiguity_factorization {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) (ξ : PhaseSpace d) :
                                      ambiguityRep (varphiKappa kappa) (varphiKappa kappa) ξ = PKappa kappa ξ * ↑(Real.exp (-QKappa ξ))
                                      theorem DimdPolyLEAN.windowAmbiguity_polynomial_nonzero {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) :
                                      PKappa kappa ≠ 0
                                      theorem DimdPolyLEAN.spectrogram_eq_of_equal_modulus_to_ambiguity_eq {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) {f g : ↥(L2Real d)} (hmod : ∀ (ξ : PhaseSpace d), ‖stftRep (varphiKappa kappa) f ξ‖ = ‖stftRep (varphiKappa kappa) g ξ‖) (ξ : PhaseSpace d) :
                                      theorem DimdPolyLEAN.equalAmbiguity_to_rankOneKernel_ae {d : ℕ} {f g : ↥(L2Real d)} {fRep gRep : RealVec d → ℂ} (hf_rep : IsL2Rep f fRep) (hg_rep : IsL2Rep g gRep) (hAmb : ∀ (ξ : PhaseSpace d), ambiguityRep f f ξ = ambiguityRep g g ξ) :
                                      (fun (p : RealVec d × RealVec d) => fRep p.1 * star (fRep p.2)) =ᵐ[MeasureTheory.volume] fun (p : RealVec d × RealVec d) => gRep p.1 * star (gRep p.2)
                                      theorem DimdPolyLEAN.rankOneKernel_ae_to_unimodular_phase {d : ℕ} {f g : ↥(L2Real d)} {fRep gRep : RealVec d → ℂ} (hf_rep : IsL2Rep f fRep) (hg_rep : IsL2Rep g gRep) (hkernel : (fun (p : RealVec d × RealVec d) => fRep p.1 * star (fRep p.2)) =ᵐ[MeasureTheory.volume] fun (p : RealVec d × RealVec d) => gRep p.1 * star (gRep p.2)) :
                                      f = 0 ∧ g = 0 ∨ ∃ (w : ℂ), ‖w‖ = 1 ∧ g = w • f
                                      theorem DimdPolyLEAN.rankOneRecoveryFromAmbiguity {d : ℕ} {f g : ↥(L2Real d)} {fRep gRep : RealVec d → ℂ} (hf_rep : IsL2Rep f fRep) (hg_rep : IsL2Rep g gRep) (hAmb : ∀ (ξ : PhaseSpace d), ambiguityRep f f ξ = ambiguityRep g g ξ) :
                                      f = 0 ∧ g = 0 ∨ ∃ (w : ℂ), ‖w‖ = 1 ∧ g = w • f
                                      theorem DimdPolyLEAN.lift_unimodular_phase_L2_to_Skappa {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) {U V : Skappa d kappa} {w : ℂ} (hL2 : bKappa kappa V = w • bKappa kappa U) :
                                      V = w • U
                                      theorem DimdPolyLEAN.ae_modulus_to_pointwise_modulus {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) {U V : Skappa d kappa} (hmod : (fun (z : Cd d) => ‖toFun kappa U z‖) =ᵐ[gammaD d] fun (z : Cd d) => ‖toFun kappa V z‖) (z : Cd d) :
                                      ‖toFun kappa U z‖ = ‖toFun kappa V z‖
                                      theorem DimdPolyLEAN.ae_modulus_to_stft_modulus {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) {U V : Skappa d kappa} (hmod : (fun (z : Cd d) => ‖toFun kappa U z‖) =ᵐ[gammaD d] fun (z : Cd d) => ‖toFun kappa V z‖) (ξ : PhaseSpace d) :
                                      ‖stftRep (varphiKappa kappa) (bKappa kappa U) ξ‖ = ‖stftRep (varphiKappa kappa) (bKappa kappa V) ξ‖
                                      theorem DimdPolyLEAN.ae_modulus_to_ambiguity_eq {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) {U V : Skappa d kappa} (hmod : (fun (z : Cd d) => ‖toFun kappa U z‖) =ᵐ[gammaD d] fun (z : Cd d) => ‖toFun kappa V z‖) (ξ : PhaseSpace d) :
                                      ambiguityRep (bKappa kappa U) (bKappa kappa U) ξ = ambiguityRep (bKappa kappa V) (bKappa kappa V) ξ
                                      theorem DimdPolyLEAN.ambiguity_eq_to_skappa_phase {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) {U V : Skappa d kappa} (hAmb : ∀ (ξ : PhaseSpace d), ambiguityRep (bKappa kappa U) (bKappa kappa U) ξ = ambiguityRep (bKappa kappa V) (bKappa kappa V) ξ) :
                                      ∃ (w : ℂ), ‖w‖ = 1 ∧ V = w • U
                                      theorem DimdPolyLEAN.exact_modulus_recovery_skappa_ae {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) {U V : Skappa d kappa} (hmod : (fun (z : Cd d) => ‖toFun kappa U z‖) =ᵐ[gammaD d] fun (z : Cd d) => ‖toFun kappa V z‖) :
                                      ∃ (w : ℂ), ‖w‖ = 1 ∧ V = w • U
                                      theorem DimdPolyLEAN.exact_modulus_recovery_skappa {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) {U V : Skappa d kappa} (hmod : ∀ (z : Cd d), ‖toFun kappa U z‖ = ‖toFun kappa V z‖) :
                                      ∃ (w : ℂ), ‖w‖ = 1 ∧ V = w • U
                                      theorem DimdPolyLEAN.exact_modulus_recovery_pkappa {d : ℕ} (hd : 0 < d) (kappa : MultiIndex d) {U V : Pkappa d kappa} (hmod : ∀ (z : Cd d), ‖evalPkappa kappa U z‖ = ‖evalPkappa kappa V z‖) :
                                      ∃ (w : ℂ), ‖w‖ = 1 ∧ V = w • U