theorem
proved
spacelike_iff_superluminal
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Unification.SpacetimeEmergence on GitHub at line 212.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
Structure -
A -
is -
is -
is -
A -
is -
A -
Displacement -
interval -
interval_eq_spatial_minus_temporal -
spatial_norm_sq -
temporal_sq
used by
formal source
209 rw [interval_eq_spatial_minus_temporal]; constructor <;> intro h <;> linarith
210
211/-- **Spacelike condition**: ds² > 0 iff |Δx|² > (Δt)². -/
212theorem spacelike_iff_superluminal (v : Displacement) :
213 0 < interval v ↔ temporal_sq v < spatial_norm_sq v := by
214 rw [interval_eq_spatial_minus_temporal]; constructor <;> intro h <;> linarith
215
216/-! ## §6 Light Cone Structure -/
217
218/-- A purely temporal displacement is timelike. -/
219theorem pure_temporal_is_timelike (t : ℝ) (ht : t ≠ 0) :
220 interval (fun i : Fin 4 => if i.val = 0 then t else 0) < 0 := by
221 rw [timelike_iff_subluminal]
222 show (fun i : Fin 4 => if i.val = 0 then t else 0) (1 : Fin 4) ^ 2 +
223 (fun i : Fin 4 => if i.val = 0 then t else 0) (2 : Fin 4) ^ 2 +
224 (fun i : Fin 4 => if i.val = 0 then t else 0) (3 : Fin 4) ^ 2 <
225 (fun i : Fin 4 => if i.val = 0 then t else 0) (0 : Fin 4) ^ 2
226 norm_num; exact sq_pos_of_ne_zero ht
227
228/-- A purely spatial displacement is spacelike. -/
229theorem pure_spatial_is_spacelike (x : ℝ) (hx : x ≠ 0) :
230 0 < interval (fun i : Fin 4 => if i.val = 1 then x else 0) := by
231 rw [spacelike_iff_superluminal]
232 show (fun i : Fin 4 => if i.val = 1 then x else 0) (0 : Fin 4) ^ 2 <
233 (fun i : Fin 4 => if i.val = 1 then x else 0) (1 : Fin 4) ^ 2 +
234 (fun i : Fin 4 => if i.val = 1 then x else 0) (2 : Fin 4) ^ 2 +
235 (fun i : Fin 4 => if i.val = 1 then x else 0) (3 : Fin 4) ^ 2
236 norm_num; exact sq_pos_of_ne_zero hx
237
238/-- A null displacement (|Δx| = |Δt|) is lightlike. -/
239theorem equal_displacement_is_lightlike (a : ℝ) :
240 interval (fun i : Fin 4 => if i.val = 0 ∨ i.val = 1 then a else 0) = 0 := by
241 rw [interval_eq_spatial_minus_temporal]
242 show (fun i : Fin 4 => if i.val = 0 ∨ i.val = 1 then a else 0) (1 : Fin 4) ^ 2 +