Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Chapter SE2

Definition
ChapterSE2

by leonardopedro · Oct 1, 2026 · Mathlib 0df444a (Lean v4.33.1)

definitionsformalizationtimepiece

Formal definitions for the timepiece Lean 4 formalization (source chapter BookProof/ChapterSE2.lean): generated def bundle for ChapterSE2. See BookProof/ChapterSE2.lean for full context.

Definition code
import Definitions.Def_ChapterA3
import Mathlib


/-!
# Chapter "Real representations, CPT theorem and the relativistic position operator",
§"Real unitary representations of the Poincaré group", **Proposition 79** — the `SE(2)`
translation subgroup of the null little group

`book.tex` (§"Real unitary representations of the Poincaré group", Proposition 79,
massless case `i\cancel l = i(γ⁰+γ³)`) exhibits the little group `G_l = SE(2)` with the
explicit parametrization

  `SE(2) = { (1 + iγ⁵(γ¹a + γ²b)(γ⁰+γ³)) · e^{iγ⁰γ³γ⁵θ} : a,b,θ ∈ ℝ }`.

The **rotation** factor `e^{iγ⁰γ³γ⁵θ}` requires the matrix exponential and is left as
prose.  We formalize the **translation** factor, i.e. the abelian normal subgroup of
`SE(2)`:

  `N(a,b) ≡ 1 + iγ⁵(γ¹a + γ²b)(γ⁰+γ³)`.

Writing everything in terms of the concrete real Majorana matrices `M_μ = iγ^μ` of
`BookProof.ChapterA3` (so `γ^μ = -i M_μ`, `iγ⁵ = M₅`), the translation matrix is the
real `4×4` matrix

  `X(a,b) = -(M₅ (a M₁ + b M₂) (M₀+M₃))`,  `N(a,b) = 1 + X(a,b)`.

The headline `Nmat_mul` shows `N` is a **group homomorphism from `(ℝ², +)`**:
`N(a,b) · N(c,d) = N(a+c, b+d)`, hence the translations form an abelian group `≅ ℝ²`
(with unit `N(0,0) = 1` and inverse `N(-a,-b)`).  The whole computation reduces to the
nilpotency facts
`(γ⁰+γ³)² = 0` and `X(a,b) · X(c,d) = 0`, which in turn come from the four decidable
identities `se2_coef_*` over the integer Majorana model.

This stays off the gravity line and off the Hankel-transform line, per the roadmap.
Everything is `sorry`-free and `axiom`-free.
-/

open Matrix

namespace BookProof.ChapterSE2

open BookProof.ChapterA3

/-! ### Integer nilpotency identities (decidable) -/











/-! ### Real Majorana model -/

/-- Cast integer matrices to real ones. -/
noncomputable def castR : Matrix (Fin 4) (Fin 4) ℤ →+* Matrix (Fin 4) (Fin 4) ℝ :=
  (Int.castRingHom ℝ).mapMatrix

/-- The real Majorana matrix `M_μ = iγ^μ`. -/
noncomputable def M (μ : Fin 4) : Matrix (Fin 4) (Fin 4) ℝ := castR (mgammaZ μ)

/-- The real fifth Majorana matrix `M₅ = iγ⁵`. -/
noncomputable def M5 : Matrix (Fin 4) (Fin 4) ℝ := castR mgamma5Z

/-- The light-cone projector direction `P = iγ⁰ + iγ³` (real). -/
noncomputable def Pr : Matrix (Fin 4) (Fin 4) ℝ := M 0 + M 3

/-- The `SE(2)` translation matrix `X(a,b) = iγ⁵(γ¹a + γ²b)(γ⁰+γ³)` (real). -/
noncomputable def Xmat (a b : ℝ) : Matrix (Fin 4) (Fin 4) ℝ :=
  -(M5 * (a • M 1 + b • M 2) * Pr)

/-- The `SE(2)` translation group element `N(a,b) = 1 + X(a,b)`. -/
noncomputable def Nmat (a b : ℝ) : Matrix (Fin 4) (Fin 4) ℝ := 1 + Xmat a b

/-- `X` is additive in `(a,b)`: `X(a,b) + X(c,d) = X(a+c, b+d)`. -/
theorem Xmat_add (a b c d : ℝ) : Xmat a b + Xmat c d = Xmat (a + c) (b + d) := by
  unfold Xmat; ring;
  simp only [mul_add, mul_smul_comm, Pr, add_mul, add_smul] ; abel_nf;

/-- The translations are **nilpotent**: `X(a,b) · X(c,d) = 0`. -/
theorem Xmat_mul_Xmat (a b c d : ℝ) : Xmat a b * Xmat c d = 0 := by
  -- By expanding the product using the definitions of `Xmat`, `M`, `M5`, and `Pr`, we can apply the
  -- nilpotency conditions.
  have h_expand : (M5 * (a • M 1 + b • M 2) * Pr) * (M5 * (c • M 1 + d • M 2) * Pr) = 0 := by
    simp only [M5, M, Fin.isValue, mul_add, Algebra.mul_smul_comm, Pr, add_mul,
        Algebra.smul_mul_assoc, mul_assoc, smul_add, smul_smul];
    simp only [Fin.isValue, ← map_mul, ← mul_assoc];
    unfold castR; norm_num [ mgamma5Z, mgammaZ ] ;
    ext i j ;      fin_cases i <;> fin_cases j <;> norm_num [ Matrix.mul_apply, Fin.sum_univ_succ ]
        <;> ring!;
  unfold Xmat; aesop;

/-- `N(0,0) = 1`. -/
theorem Nmat_zero : Nmat 0 0 = 1 := by
  unfold Nmat Xmat; aesop;

/-- **Proposition 79 (`SE(2)` translations).** `N` is a homomorphism from `(ℝ², +)`:
`N(a,b) · N(c,d) = N(a+c, b+d)`. -/
theorem Nmat_mul (a b c d : ℝ) : Nmat a b * Nmat c d = Nmat (a + c) (b + d) := by
  convert congr_arg ( fun x : Matrix ( Fin 4 ) ( Fin 4 ) ℝ => 1 + x ) ( Xmat_add a b c d ) using 1
  · unfold Nmat; simp only [mul_add, mul_one, add_mul, one_mul, Xmat_mul_Xmat, add_zero] ;
    rw [ add_assoc ]
  · rfl



/-- **Capstone.** `N` assembles into a monoid homomorphism from `(ℝ², +)` (as
`Multiplicative (ℝ × ℝ)`) into the matrix monoid: this is the abelian translation
subgroup of `SE(2)`, isomorphic to `ℝ²`. -/
noncomputable def NmatHom : Multiplicative (ℝ × ℝ) →* Matrix (Fin 4) (Fin 4) ℝ where
  toFun p := Nmat (Multiplicative.toAdd p).1 (Multiplicative.toAdd p).2
  map_one' := Nmat_zero
  map_mul' x y := (Nmat_mul (Multiplicative.toAdd x).1 (Multiplicative.toAdd x).2
    (Multiplicative.toAdd y).1 (Multiplicative.toAdd y).2).symm

end BookProof.ChapterSE2
Source
https://github.com/leonardopedro/timepiece/blob/61595bc/BookProof/ChapterSE2.lean

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me