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

spatialNormSq_coordRay_spatial_3

proved
show as:
view math explainer →
module
IndisputableMonolith.Relativity.Calculus.Derivatives
domain
Relativity
line
218 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.Relativity.Calculus.Derivatives on GitHub at line 218.

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

 215      if_neg (by decide : (3 : Fin 4) ≠ 2)]
 216  ring
 217
 218private lemma spatialNormSq_coordRay_spatial_3 (x : Fin 4 → ℝ) (s : ℝ) :
 219    spatialNormSq (coordRay x 3 s) = x 1 ^ 2 + x 2 ^ 2 + (x 3 + s) ^ 2 := by
 220  unfold spatialNormSq coordRay basisVec
 221  rw [if_neg (by decide : (1 : Fin 4) ≠ 3),
 222      if_neg (by decide : (2 : Fin 4) ≠ 3),
 223      if_pos (rfl : (3 : Fin 4) = 3)]
 224  ring
 225
 226/-- `spatialRadius` stays nonzero under sufficiently small coordinate perturbations.
 227
 228    Quantitative version: if `r = spatialRadius x ≠ 0` and `|s| < r/2`, then the
 229    perturbed point `coordRay x ν s = x + s · e_ν` still has nonzero spatial radius.
 230
 231    Proof: case-split on `ν ∈ {0,1,2,3}`.
 232    - `ν = 0`: temporal direction, `spatialRadius (coordRay x 0 s) = spatialRadius x` (proved).
 233    - `ν ∈ {1,2,3}`: only the `ν`-th spatial component changes by `s`, so
 234      `spatialNormSq (coordRay x ν s) = ‖x‖² + 2 s · x_ν + s²`. Using `|x_ν| ≤ r`
 235      and `|s| < r/2`, the polynomial lower bound `(r - |s|)² ≤ ‖x‖² + 2 s x_ν + s²`
 236      gives `spatialNormSq > 0` and hence `spatialRadius ≠ 0`.
 237
 238    Closes one of the §XXIII.B′ Mathlib calculus axioms. -/
 239theorem spatialRadius_coordRay_ne_zero (x : Fin 4 → ℝ) (ν : Fin 4) (s : ℝ)
 240    (hx : spatialRadius x ≠ 0) (hs : |s| < spatialRadius x / 2) :
 241    spatialRadius (coordRay x ν s) ≠ 0 := by
 242  rw [spatialRadius_ne_zero_iff]
 243  have hr_pos : 0 < spatialRadius x := spatialRadius_pos_of_ne_zero x hx
 244  have hr_sq : spatialRadius x ^ 2 = spatialNormSq x := by
 245    unfold spatialRadius; rw [Real.sq_sqrt (spatialNormSq_nonneg x)]
 246  have h_s_lo : -(spatialRadius x / 2) < s := (abs_lt.mp hs).1
 247  have h_s_hi : s < spatialRadius x / 2 := (abs_lt.mp hs).2
 248  have h_x1_le : x 1 ^ 2 ≤ spatialRadius x ^ 2 := hr_sq ▸ sq_le_spatialNormSq_1 x