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

logSpiral_ne_zero

proved
show as:
view math explainer →
module
IndisputableMonolith.Flight.Geometry
domain
Flight
line
48 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.Flight.Geometry on GitHub at line 48.

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

  45open IndisputableMonolith.Spiral
  46
  47/-- `logSpiral` is nonzero whenever `r0` is nonzero (since φ^x > 0). -/
  48lemma logSpiral_ne_zero
  49    {r0 θ : ℝ} {P : SpiralField.Params} (hr0 : r0 ≠ 0) :
  50    SpiralField.logSpiral r0 θ P ≠ 0 := by
  51  classical
  52  unfold SpiralField.logSpiral
  53  -- `φ > 0` hence `φ^exp > 0`.
  54  have hφpos : 0 < IndisputableMonolith.Constants.phi :=
  55    IndisputableMonolith.Constants.phi_pos
  56  have hrpow_ne : Real.rpow IndisputableMonolith.Constants.phi
  57        ((P.kappa : ℝ) * θ / (2 * Real.pi)) ≠ 0 := by
  58    exact ne_of_gt (Real.rpow_pos_of_pos hφpos _)
  59  exact mul_ne_zero hr0 hrpow_ne
  60
  61/-- Closed-form step ratio for the log-spiral: it depends only on `Δθ` and `kappa`.
  62
  63This is the mathematical kernel behind the "discrete pitch families" idea.
  64
  65We assume `r0 ≠ 0` to avoid the definitional `if r₀ = 0 then 1` branch
  66in `SpiralField.stepRatio`.
  67-/
  68lemma stepRatio_logSpiral_closed_form
  69    (r0 θ Δθ : ℝ) (P : SpiralField.Params) (hr0 : r0 ≠ 0) :
  70    SpiralField.stepRatio r0 θ Δθ P
  71      = Real.rpow IndisputableMonolith.Constants.phi ((P.kappa : ℝ) * Δθ / (2 * Real.pi)) := by
  72  classical
  73  -- Unfold the definition and discharge the `if` branch *before* unfolding `logSpiral`.
  74  unfold SpiralField.stepRatio
  75  have hr0path : SpiralField.logSpiral r0 θ P ≠ 0 :=
  76    logSpiral_ne_zero (r0:=r0) (θ:=θ) (P:=P) hr0
  77  simp [hr0path]
  78