Special-relativistic kinematics: Lorentz factor, energy, momentum, four-momentum, Minkowski form, invariant mass, boosts
DefinitionEnergyMomentum_basicBasic objects of special-relativistic kinematics in flat spacetime, with an explicit speed of light .
Spatial vectors live in with Euclidean norm and dot product; four-vectors are pairs of contravariant components. For a body of mass moving with velocity :
- Lorentz factor ;
- total energy ;
- relativistic momentum ;
- rest energy and kinetic energy ;
- four-momentum .
On four-vectors:
- the Minkowski inner product of signature , ;
- the invariant mass of a four-momentum , , so that when , ;
- the Lorentz boost along the -axis with velocity : , where , .
These definitions are the shared model for every statement of the mission.
Formalization Note Spatial vectors are EuclideanSpace ℝ (Fin 3) with coordinates 0, 1, 2 for . Division and square root are total in Lean: for (or ) the Lorentz factor evaluates to , and for divisions by evaluate to ; theorems therefore assume and explicitly.
import Mathlib
/-!
# Energy–momentum relation: basic special-relativistic quantities
Spatial vectors (velocities, three-momenta) live in `EuclideanSpace ℝ (Fin 3)`;
coordinates `0, 1, 2` are the `x, y, z` components.
Four-vectors are pairs `(P⁰, 𝐏) : ℝ × EuclideanSpace ℝ (Fin 3)` of contravariant components.
-/
namespace EnergyMomentum
/-- Three-dimensional Euclidean space of spatial vectors. -/
abbrev Vec3 := EuclideanSpace ℝ (Fin 3)
/-- Four-vectors `(P⁰, 𝐏)` (contravariant components). -/
abbrev FourVec := ℝ × Vec3
/-- The Lorentz factor `γ = 1 / √(1 - (|v|/c)²)` of a body moving with velocity `v`
when the speed of light is `c`. (Only meaningful for `|v| < c`.) -/
noncomputable def lorentzFactor (c : ℝ) (v : Vec3) : ℝ :=
1 / Real.sqrt (1 - (‖v‖ / c) ^ 2)
/-- Total (relativistic) energy `E = γ m c²` of a body of mass `m` moving with velocity `v`. -/
noncomputable def energy (m c : ℝ) (v : Vec3) : ℝ :=
lorentzFactor c v * m * c ^ 2
/-- Relativistic three-momentum `𝐩 = γ m 𝐯` of a body of mass `m` moving with velocity `v`. -/
noncomputable def momentum (m c : ℝ) (v : Vec3) : Vec3 :=
(lorentzFactor c v * m) • v
/-- Rest energy `E₀ = m c²`. -/
def restEnergy (m c : ℝ) : ℝ :=
m * c ^ 2
/-- Relativistic kinetic energy `E_K = E - E₀`. -/
noncomputable def kineticEnergy (m c : ℝ) (v : Vec3) : ℝ :=
energy m c v - restEnergy m c
/-- Minkowski inner product with metric signature `(+ − − −)`:
`⟨P, Q⟩ = P⁰ Q⁰ − 𝐏 · 𝐐`. -/
noncomputable def minkowskiInner (P Q : FourVec) : ℝ :=
P.1 * Q.1 - inner ℝ P.2 Q.2
/-- Four-momentum `𝐏 = (E / c, 𝐩)` of a body of mass `m` moving with velocity `v`. -/
noncomputable def fourMomentum (m c : ℝ) (v : Vec3) : FourVec :=
(energy m c v / c, momentum m c v)
/-- Invariant mass `M` associated with a (total) four-momentum `P`, defined through
`⟨P, P⟩ = (M c)²`, i.e. `M = √⟨P, P⟩ / c`. -/
noncomputable def invariantMass (c : ℝ) (P : FourVec) : ℝ :=
Real.sqrt (minkowskiInner P P) / c
/-- Lorentz boost along the `x`-axis with velocity `u` (speed of light `c`), acting on
contravariant four-vector components:
`P'⁰ = γ (P⁰ − β Pˣ)`, `P'ˣ = γ (Pˣ − β P⁰)`, `P'ʸ = Pʸ`, `P'ᶻ = Pᶻ`,
where `β = u / c` and `γ = 1 / √(1 − β²)`. -/
noncomputable def boostX (c u : ℝ) (P : FourVec) : FourVec :=
(1 / Real.sqrt (1 - (u / c) ^ 2) * (P.1 - u / c * P.2 0),
!₂[1 / Real.sqrt (1 - (u / c) ^ 2) * (P.2 0 - u / c * P.1), P.2 1, P.2 2])
end EnergyMomentum
Read-back
What the Lean code literally says, in plain math · Aristotle (Harmonic) — same agent as the drafter; non-blind
Disclosure — this is NOT a blind read-back. It was written by the same agent (Aristotle, by Harmonic) that drafted this Lean statement, with full knowledge of the source material and of the intended meaning. It is not independent testimony and must not be mistaken for an independent audit; reviewers should check it against the Lean code themselves (or replace it with a blind read-back).
The file defines, inside the namespace EnergyMomentum, the following objects. is the Euclidean space (coordinates indexed ) with its Euclidean norm and inner product, and , whose elements are written . For arbitrary real numbers (no sign conditions are imposed anywhere in the file) and :
- , where is the real square root which returns on negative inputs, and . In particular it equals whenever , and equals when (since ).
- .
- .
- .
- .
- (Euclidean dot product of the spatial parts).
- (first component is if ).
- ; this is whenever or .
- : writing (same junk conventions; when ), it is the four-vector with time component and spatial vector , where are the coordinates of .
The file contains only definitions; it asserts no theorem.