Prove2Me
Navigate
DiscoverCollectionsFormalpediaGalaxyBlogsUsersMomentumMy Missions+
Prove2Me
Log in
← Formalpedia

Brieskorn spheres, lens spaces, P#(−P)P\#(-P)P#(−P), and realizations of simplicial complexes

Definition
hsbb_spaces

by Lucas · Oct 11, 2026 · Mathlib 0df444a (Lean v4.33.1)

3-manifoldstopology

Concrete 3-manifolds for the homology-ball mission.

Brieskorn manifolds. For p,q,r∈Np,q,r \in \mathbb Np,q,r∈N,

Σ(p,q,r)={z∈C3:z0p+z1q+z2r=0, ∥z∥=1},\Sigma(p,q,r) = \{ z \in \mathbb C^3 : z_0^p + z_1^q + z_2^r = 0,\ \|z\| = 1 \},Σ(p,q,r)={z∈C3:z0p​+z1q​+z2r​=0, ∥z∥=1},

with the subspace topology. The Poincaré homology sphere is P=Σ(2,3,5)P = \Sigma(2,3,5)P=Σ(2,3,5).

Lens spaces. L(p,q)L(p,q)L(p,q) is the quotient of the unit sphere S3⊂C2S^3 \subset \mathbb C^2S3⊂C2 by the relation a∼ba \sim ba∼b iff b=(ζka0,ζqka1)b = (\zeta^k a_0, \zeta^{qk} a_1)b=(ζka0​,ζqka1​) for some k∈Nk \in \mathbb Nk∈N, where ζ=e2πi/p\zeta = e^{2\pi i/p}ζ=e2πi/p, with the quotient topology.

The double of a punctured manifold. For a space MMM with an atlas modelled on R3\mathbb R^3R3, a point xxx and a radius rrr, let φ\varphiφ be the chart at xxx, B=φ−1(ball(φx,r))B = \varphi^{-1}(\mathrm{ball}(\varphi x, r))B=φ−1(ball(φx,r)) and S=φ−1(sphere(φx,r))S = \varphi^{-1}(\mathrm{sphere}(\varphi x, r))S=φ−1(sphere(φx,r)). The double D(M∖B)D(M\setminus B)D(M∖B) is the quotient of two copies of M∖BM \setminus BM∖B in which each point of SSS in the first copy is identified with the same point in the second copy. When the closed ball lies in the chart target, D(M∖B)D(M\setminus B)D(M∖B) is homeomorphic to the connected sum M#(−M)M \# (-M)M#(−M).

Realizations of simplicial complexes. A finite simplicial complex is a list KKK of simplices, each a list of vertex labels in N\mathbb NN. Its realization is

∣K∣=⋃σ∈K{x∈RN:x≥0, xi=0 for i∉σ, ∑i∈σxi=1},|K| = \bigcup_{\sigma \in K} \Bigl\{ x \in \mathbb R^{\mathbb N} : x \ge 0,\ x_i = 0 \text{ for } i \notin \sigma,\ \textstyle\sum_{i\in\sigma} x_i = 1 \Bigr\},∣K∣=σ∈K⋃​{x∈RN:x≥0, xi​=0 for i∈/σ, ∑i∈σ​xi​=1},

with the subspace topology of the product topology. This is the input format for algorithms on 3-manifolds.

Formalization Note. For p=0p = 0p=0 the formula gives ζ=1\zeta = 1ζ=1; lens spaces are only used with p≥4p \ge 4p≥4 in this mission.

Definition code
import Mathlib

/-!
# Concrete 3-manifolds for the homology-ball mission

Brieskorn spheres, lens spaces, the double of a manifold minus an open chart ball
(a model of `M # (-M)`), and geometric realizations of finite simplicial complexes
(used to feed 3-manifolds to an algorithm).
-/

open scoped Manifold

namespace HomologySpheresBoundBalls

/-- The Brieskorn manifold `Σ(p,q,r) = {z ∈ ℂ³ : z₀^p + z₁^q + z₂^r = 0, |z| = 1}`,
with the subspace topology from `ℂ³`. -/
def BrieskornSphere (p q r : ℕ) : Set (EuclideanSpace ℂ (Fin 3)) :=
  {z | z 0 ^ p + z 1 ^ q + z 2 ^ r = 0 ∧ ‖z‖ = 1}

/-- The Poincaré homology sphere (Poincaré dodecahedral space) `Σ(2,3,5)`. -/
abbrev PoincareSphere : Set (EuclideanSpace ℂ (Fin 3)) := BrieskornSphere 2 3 5

/-- The unit 3-sphere in `ℂ²`. -/
abbrev ComplexSphere3 : Type := Metric.sphere (0 : EuclideanSpace ℂ (Fin 2)) 1

/-- The relation on `S³ ⊆ ℂ²` whose classes are the orbits of the `ℤ/p`-action generated by
`(z₀, z₁) ↦ (ζ z₀, ζ^q z₁)`, `ζ = e^{2πi/p}`. -/
def lensRel (p q : ℕ) (a b : ComplexSphere3) : Prop :=
  ∃ k : ℕ, (b : EuclideanSpace ℂ (Fin 2)) 0 =
      Complex.exp (2 * Real.pi * Complex.I / p) ^ k * (a : EuclideanSpace ℂ (Fin 2)) 0 ∧
    (b : EuclideanSpace ℂ (Fin 2)) 1 =
      Complex.exp (2 * Real.pi * Complex.I / p) ^ (q * k) * (a : EuclideanSpace ℂ (Fin 2)) 1

/-- The lens space `L(p,q) = S³ / (ℤ/p)`, with the quotient topology. -/
def LensSpace (p q : ℕ) : Type := Quot (lensRel p q)

instance (p q : ℕ) : TopologicalSpace (LensSpace p q) :=
  inferInstanceAs (TopologicalSpace (Quot (lensRel p q)))

section Double

variable {M : Type} [TopologicalSpace M] [ChartedSpace (EuclideanSpace ℝ (Fin 3)) M]

/-- The open chart ball `B(x,r) = φ⁻¹(ball(φ x, r))` for the chart `φ` at `x`. -/
def chartBall (x : M) (r : ℝ) : Set M :=
  (chartAt (EuclideanSpace ℝ (Fin 3)) x).symm ''
    Metric.ball (chartAt (EuclideanSpace ℝ (Fin 3)) x x) r

/-- The chart sphere `φ⁻¹(sphere(φ x, r))`. -/
def chartSphere (x : M) (r : ℝ) : Set M :=
  (chartAt (EuclideanSpace ℝ (Fin 3)) x).symm ''
    Metric.sphere (chartAt (EuclideanSpace ℝ (Fin 3)) x x) r

/-- `M` with the open chart ball `B(x,r)` removed. -/
abbrev Punctured (x : M) (r : ℝ) : Type := ↥((chartBall x r)ᶜ)

/-- Gluing relation for the double: a point of the boundary sphere in the first copy is
identified with the same point in the second copy. -/
def doubleRel (x : M) (r : ℝ) : Punctured x r ⊕ Punctured x r → Punctured x r ⊕ Punctured x r → Prop
  | .inl a, .inr b => a = b ∧ (a : M) ∈ chartSphere x r
  | _, _ => False

/-- The double `D(M ∖ B) = (M ∖ B) ∪_{∂B} (M ∖ B)` of `M` minus an open chart ball,
with the quotient topology. Topologically this is the connected sum `M # (-M)`. -/
def PuncturedDouble (x : M) (r : ℝ) : Type := Quot (doubleRel x r)

instance (x : M) (r : ℝ) : TopologicalSpace (PuncturedDouble x r) :=
  inferInstanceAs (TopologicalSpace (Quot (doubleRel x r)))

end Double

/-- The geometric realization `|K| ⊆ ℝ^ℕ` of a finite simplicial complex `K` given by a list
of simplices, each simplex a list of vertex labels in `ℕ`: the union over `σ ∈ K` of the
standard simplices `{x ≥ 0, supp x ⊆ σ, ∑_{i ∈ σ} x_i = 1}`. Topology: subspace of the product. -/
def realization (K : List (List ℕ)) : Set (ℕ → ℝ) :=
  {x | ∃ σ ∈ K, (∀ i, 0 ≤ x i) ∧ (∀ i, i ∉ σ → x i = 0) ∧ ∑ i ∈ σ.toFinset, x i = 1}

end HomologySpheresBoundBalls
Source
Open Problem Garden, 'Which homology 3-spheres bound homology 4-balls?' (rybu, 2009), http://www.openproblemgarden.org/op/which_homology_3_spheres_bound_homology_4_balls
Human review
  • Endorsed by Shuze Chen · Oct 11, 2026

    Confirmed by the moderator at approval.

  • Endorsed by Lucas · Oct 11, 2026

    Confirmed by the mission captain (proposal self-audit).

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 paperProve2Me Team
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me