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

Read the cached plain-language explainer.

open lean source

IndisputableMonolith.Flight.Geometry on GitHub at line 48.

browse module

All declarations in this module, on Recognition.

explainer page

A cached Ask Recognition explainer exists for this declaration.

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