The lines of the Lean statement that state the theorem, then the definitions in the file that it uses.
Local definitions the statement names, followed through the definitions they name in turn. The match is by name in the source text, so a name reached only through notation can be missed; the full file is below.
definition OAI.DefocusingNLS.frequencyLattice line 22
noncomputable def frequencyLattice : Submodule ℤ (EuclideanSpace ℝ (Fin 12)) := Submodule.span ℤ (Set.range (EuclideanSpace.basisFun (Fin 12) ℝ).toBasis)
definition OAI.DefocusingNLS.complexGaussian line 35
noncomputable def complexGaussian (v : ℝ≥0) : Measure ℂ := ((gaussianReal 0 v).prod (gaussianReal 0 v)).map Complex.equivRealProdCLM.symm
definition OAI.DefocusingNLS.fourierGaussianLaw line 46
noncomputable def fourierGaussianLaw : Measure (frequencyLattice → ℂ) := Measure.infinitePi (fun _ : frequencyLattice => complexGaussian (1 / 2))
definition OAI.DefocusingNLS.sobolevVariance line 49
noncomputable def sobolevVariance (k α : ℝ) (n : frequencyLattice) : ℝ := (1 + ‖n‖ ^ 2) ^ (k - α)
definition OAI.DefocusingNLS.weightedGaussianCoefficient line 52
noncomputable def weightedGaussianCoefficient (k α : ℝ) (g : frequencyLattice → ℂ) (n : frequencyLattice) : ℂ := Real.sqrt (sobolevVariance k α n) • g nrun_cmd Lean.modifyEnv fun env => Lean.Meta.auxLemmasExt.setState env {}
abbreviation OAI.DefocusingNLS.FourierL2 line 58
abbrev FourierL2 := lp (fun _ : frequencyLattice => ℂ) (2 : ℝ≥0∞)
definition OAI.DefocusingNLS.weightedGaussianVector line 63
noncomputable def weightedGaussianVector (k α : ℝ) (g : frequencyLattice → ℂ) : FourierL2 := ∑' n, lp.single 2 n (weightedGaussianCoefficient k α g n)
definition OAI.DefocusingNLS.sobolevFourierCoefficient line 67
noncomputable def sobolevFourierCoefficient (k : ℝ) (f : FourierL2) (n : frequencyLattice) : ℂ := (1 + ‖n‖ ^ 2) ^ (-k / 2) • f n
definition OAI.DefocusingNLS.weightedGaussianLaw line 71
noncomputable def weightedGaussianLaw (k α : ℝ) : Measure FourierL2 := fourierGaussianLaw.map (weightedGaussianVector k α)run_cmd Lean.modifyEnv fun env => Lean.Meta.auxLemmasExt.setState env {}
abbreviation OAI.DefocusingNLS.SchrodingerTorus line 76
abbrev SchrodingerTorus := Fin 12 → AddCircle (2 * Real.pi)
definition OAI.DefocusingNLS.frequencyCoordinates line 80
noncomputable def frequencyCoordinates (n : frequencyLattice) : Fin 12 → ℤ := ((EuclideanSpace.basisFun (Fin 12) ℝ).toBasis.restrictScalars ℤ).repr n
definition OAI.DefocusingNLS.torusCharacter line 83
noncomputable def torusCharacter (n : frequencyLattice) : C(SchrodingerTorus, ℂ) where toFun x := ∏ j : Fin 12, fourier (frequencyCoordinates n j) (x j) continuous_toFun := by fun_prop
definition OAI.DefocusingNLS.sobolevTorusTerm line 87
noncomputable def sobolevTorusTerm (k : ℝ) (f : FourierL2) (n : frequencyLattice) : C(SchrodingerTorus, ℂ) := sobolevFourierCoefficient k f n • torusCharacter n
definition OAI.DefocusingNLS.sobolevTorusFunction line 91
noncomputable def sobolevTorusFunction (k : ℝ) (f : FourierL2) : C(SchrodingerTorus, ℂ) := ∑' n, sobolevTorusTerm k f nrun_cmd Lean.modifyEnv fun env => Lean.Meta.auxLemmasExt.setState env {}
definition OAI.DefocusingNLS.sobolevProductWeight line 96
noncomputable def sobolevProductWeight (k : ℝ) (n : frequencyLattice) : ℝ := (1 + ‖n‖ ^ 2) ^ (k / 2)run_cmd Lean.modifyEnv fun env => Lean.Meta.auxLemmasExt.setState env {}
definition OAI.DefocusingNLS.sobolevProductCoefficient line 101
noncomputable def sobolevProductCoefficient (k : ℝ) (f g : FourierL2) (n : frequencyLattice) : ℂ := ∑' m, sobolevFourierCoefficient k f m * sobolevFourierCoefficient k g (n - m)
definition OAI.DefocusingNLS.sobolevProduct line 105
noncomputable def sobolevProduct (k : ℝ) (_hk : 6 < k) (f g : FourierL2) : FourierL2 := ⟨fun n => (sobolevProductWeight k n : ℂ) * sobolevProductCoefficient k f g n, by sorry⟩run_cmd Lean.modifyEnv fun env => Lean.Meta.auxLemmasExt.setState env {}
definition OAI.DefocusingNLS.fourierConjugate line 111
noncomputable def fourierConjugate (f : FourierL2) : FourierL2 := ⟨fun n => conj (f (-n)), by apply memℓp_gen simpa only [Complex.norm_conj, Function.comp_def, Equiv.neg_apply] using (Equiv.neg frequencyLattice).summable_iff.mpr ((lp.memℓp f).summable (by norm_num : 0 < (2 : ℝ≥0∞).toReal))⟩run_cmd Lean.modifyEnv fun env => Lean.Meta.auxLemmasExt.setState env {}
definition OAI.DefocusingNLS.sobolevOddPower line 120
noncomputable def sobolevOddPower (k : ℝ) (hk : 6 < k) : ℕ → FourierL2 → FourierL2 | 0, f => f | m + 1, f => sobolevProduct k hk (sobolevProduct k hk (sobolevOddPower k hk m f) (fourierConjugate f)) frun_cmd Lean.modifyEnv fun env => Lean.Meta.auxLemmasExt.setState env {}
definition OAI.DefocusingNLS.schrodingerMultiplier line 127
noncomputable def schrodingerMultiplier (t : ℝ) (n : frequencyLattice) : ℂ := Complex.exp (-Complex.I * ((t * ‖n‖ ^ 2 : ℝ) : ℂ))
definition OAI.DefocusingNLS.schrodingerFlow line 130
noncomputable def schrodingerFlow (t : ℝ) : FourierL2 →ₗᵢ[ℂ] FourierL2 where
Show the remaining 31 lines
toFun f := ⟨fun n => schrodingerMultiplier t n * f n, by apply (lp.memℓp f).mono' intro n simp only [norm_mul, schrodingerMultiplier, Complex.norm_exp, Complex.mul_re, Complex.neg_re, Complex.neg_im, Complex.I_re, Complex.I_im, Complex.ofReal_re, Complex.ofReal_im, neg_zero, zero_mul, mul_zero, sub_zero, Real.exp_zero, one_mul] exact le_rfl⟩ map_add' f g := by ext n change schrodingerMultiplier t n * (f n + g n) = schrodingerMultiplier t n * f n + schrodingerMultiplier t n * g n exact mul_add _ _ _ map_smul' c f := by ext n; simp [mul_left_comm] norm_map' f := by have hm (n : frequencyLattice) : ‖schrodingerMultiplier t n‖ = 1 := by simp only [schrodingerMultiplier, Complex.norm_exp, Complex.mul_re, Complex.neg_re, Complex.neg_im, Complex.I_re, Complex.I_im, Complex.ofReal_re, Complex.ofReal_im, neg_zero, zero_mul, mul_zero, sub_zero, Real.exp_zero] apply le_antisymm · apply lp.norm_mono (by norm_num : (2 : ℝ≥0∞) ≠ 0) intro n change ‖schrodingerMultiplier t n * f n‖ ≤ ‖f n‖ rw [norm_mul, hm, one_mul] · apply lp.norm_mono (by norm_num : (2 : ℝ≥0∞) ≠ 0) intro n change ‖f n‖ ≤ ‖schrodingerMultiplier t n * f n‖ rw [norm_mul, hm, one_mul]run_cmd Lean.modifyEnv fun env => Lean.Meta.auxLemmasExt.setState env {}
definition OAI.DefocusingNLS.fourierContraction line 163
noncomputable def fourierContraction (m : frequencyLattice → ℂ) (hm : ∀ n, ‖m n‖ ≤ 1) : FourierL2 →L[ℂ] FourierL2 :=
Show the remaining 23 lines
LinearMap.mkContinuous { toFun := fun f => ⟨fun n => m n * f n, (lp.memℓp f).mono' (by intro n rw [norm_mul] simpa using mul_le_mul_of_nonneg_right (hm n) (norm_nonneg (f n)))⟩ map_add' := by intro f g ext n change m n * (f n + g n) = m n * f n + m n * g n exact mul_add _ _ _ map_smul' := by intro c f ext n change m n * (c * f n) = c * (m n * f n) ring } 1 (by intro f simp only [one_mul] apply lp.norm_mono (by norm_num : (2 : ℝ≥0∞) ≠ 0) intro n change ‖m n * f n‖ ≤ ‖f n‖ rw [norm_mul] simpa using mul_le_mul_of_nonneg_right (hm n) (norm_nonneg (f n)))
definition OAI.DefocusingNLS.lowerSobolevInclusion line 189
noncomputable def lowerSobolevInclusion : FourierL2 →L[ℂ] FourierL2 := fourierContraction (fun n => (((1 + ‖n‖ ^ 2)⁻¹ : ℝ) : ℂ)) (by intro n rw [Complex.norm_real, Real.norm_eq_abs, abs_of_nonneg (by positivity)] exact inv_le_one_of_one_le₀ (le_add_of_nonneg_right (sq_nonneg _)))
definition OAI.DefocusingNLS.lowerSobolevGenerator line 195
noncomputable def lowerSobolevGenerator : FourierL2 →L[ℂ] FourierL2 := fourierContraction (fun n => -Complex.I * (((‖n‖ ^ 2 / (1 + ‖n‖ ^ 2)) : ℝ) : ℂ)) (by intro n rw [norm_mul, norm_neg, Complex.norm_I, one_mul, Complex.norm_real, Real.norm_eq_abs, abs_of_nonneg (by positivity)] exact (div_le_one (by positivity)).mpr (by linarith [sq_nonneg ‖n‖]))run_cmd Lean.modifyEnv fun env => Lean.Meta.auxLemmasExt.setState env {}
7 more definitions are reached the same way; the full file lists them.
Comparator compares only the name and type of each definition listed here. When a theorem is configured, its proof uses the definition in OpenAI’s solution library. Read that definition as well as the one in this file when comparing the statement with the paper.