Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Chapter FreeFieldBornSignOrientationSubgroup

Definition
ChapterFreeFieldBornSignOrientationSubgroup

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

definitionsformalizationtimepiece

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

Definition code
import Theorems.Thm_BookProof_ChapterFreeFieldBornSignOrientationKernel_orientationPreserving_false

import Theorems.Thm_BookProof_ChapterFreeFieldBornSignOrientationKernel_orientationPreserving_xor

import Definitions.Def_ChapterFreeFieldBornSignOrientationKernel
import Definitions.Def_ChapterFreeFieldBornSignHom
import Definitions.Def_ChapterFreeFieldBornSignMatrix
import Definitions.Def_ChapterFreeFieldBornSignOrientation
import Definitions.Def_ChapterFreeFieldBornSignOrientationCard
import Mathlib


/-!
# The orientation-preserving Born sign gauge as an additive subgroup

The boolean sign choices carry their standard elementary abelian `2`-group
structure: pointwise addition on `Bool` is xor. This file packages the
orientation-preserving choices as an actual `AddSubgroup`, rather than only
recording closure as separate propositions.
-/

open BookProof.ChapterFreeFieldBornSignHom
open BookProof.ChapterFreeFieldBornSignMatrix
open BookProof.ChapterFreeFieldBornSignOrientation
open BookProof.ChapterFreeFieldBornSignOrientationKernel
open BookProof.ChapterFreeFieldBornSignOrientationCard

namespace BookProof.ChapterFreeFieldBornSignOrientationSubgroup

variable {n : ℕ}

/-- The additive subgroup of boolean sign choices whose diagonal matrices have
determinant `+1`. -/
def orientationPreservingSigns (n : ℕ) : AddSubgroup (Fin n → Bool) where
  carrier := {b | flipMatrix b ∈ Matrix.specialOrthogonalGroup (Fin n) ℝ}
  zero_mem' := by
    change flipMatrix (fun _ => false) ∈
      Matrix.specialOrthogonalGroup (Fin n) ℝ
    exact orientationPreserving_false
  add_mem' := by
    intro b₁ b₂ h₁ h₂
    have hadd : b₁ + b₂ = fun k => xor (b₁ k) (b₂ k) := by
      funext k
      change b₁ k + b₂ k = xor (b₁ k) (b₂ k)
      cases b₁ k <;> cases b₂ k <;> rfl
    rw [hadd]
    exact orientationPreserving_xor h₁ h₂
  neg_mem' := by
    intro b hb
    exact hb

@[simp] theorem mem_orientationPreservingSigns_iff (b : Fin n → Bool) :
    b ∈ orientationPreservingSigns n ↔
      flipMatrix b ∈ Matrix.specialOrthogonalGroup (Fin n) ℝ :=
  Iff.rfl





/-
In positive dimension, the orientation-preserving subgroup has index two.
-/


end BookProof.ChapterFreeFieldBornSignOrientationSubgroup
Source
https://github.com/leonardopedro/timepiece/blob/61595bc/BookProof/ChapterFreeFieldBornSignOrientationSubgroup.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