pith. machine review for the scientific record. sign in
def

rescaleLength

definition
show as:
view math explainer →
module
IndisputableMonolith.NavierStokes.RunningMaxNormalization
domain
NavierStokes
line
91 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.NavierStokes.RunningMaxNormalization on GitHub at line 91.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

used by

formal source

  88
  89/-- The rescaling factor λₙ = 1 / √(runningMax a n).
  90    Used to rescale space: x ↦ x/λₙ, t ↦ t/λₙ². -/
  91noncomputable def rescaleLength (a : ℕ → ℝ) (n : ℕ) : ℝ :=
  92  1 / Real.sqrt (runningMax a n)
  93
  94/-- The rescaling factor is positive. -/
  95theorem rescaleLength_pos (a : ℕ → ℝ) (n : ℕ) (h : 0 < a n) :
  96    0 < rescaleLength a n := by
  97  unfold rescaleLength
  98  apply div_pos one_pos
  99  exact Real.sqrt_pos.mpr (runningMax_pos a n h)
 100
 101/-- The rescaling factor tends to 0 as the running max diverges. -/
 102theorem rescaleLength_tendsto_zero (a : ℕ → ℝ) (h : Tendsto a atTop atTop) :
 103    Tendsto (rescaleLength a) atTop (nhds 0) := by
 104  -- Strategy: for any ε > 0, get N so that runningMax a n > (1/ε)², then
 105  -- sqrt(runningMax a n) > 1/ε, hence 1/sqrt(runningMax a n) < ε.
 106  have h_max := runningMax_tendsto_atTop a h
 107  rw [Metric.tendsto_nhds]
 108  intro ε hε
 109  have hie_pos : (0 : ℝ) < 1 / ε := by positivity
 110  rw [Filter.tendsto_atTop_atTop] at h_max
 111  obtain ⟨N, hN⟩ := h_max ((1 / ε) ^ 2 + 1)
 112  rw [Filter.eventually_atTop]
 113  refine ⟨N, fun n hn => ?_⟩
 114  have hrun : (1 / ε) ^ 2 + 1 ≤ runningMax a n := hN n hn
 115  have hrun_pos : (0 : ℝ) < runningMax a n := by linarith [sq_nonneg (1 / ε)]
 116  have hsqrt_pos : (0 : ℝ) < Real.sqrt (runningMax a n) := Real.sqrt_pos.mpr hrun_pos
 117  simp only [rescaleLength, Real.dist_eq, sub_zero,
 118    abs_of_pos (div_pos one_pos hsqrt_pos)]
 119  rw [div_lt_iff₀ hsqrt_pos]
 120  have h_sqrt_bound : 1 / ε < Real.sqrt (runningMax a n) := by
 121    rw [← Real.sqrt_sq hie_pos.le]