Incidence geometry · formal theorem

Sylvester–Gallai Theorem

A finite set of more than two points in ℝ² that is not all on one line has a pair whose line contains no third point of the set.

Lean proofpassed
Unfinished proof stepsNone
Formal resultAccepted
Sylvester–Gallai incidence mapA finite real-plane set of more than two points that is not all on one line yields a pair whose line contains no third point from the set.
Exact scope: The concrete finite Sylvester-Gallai theorem over ℝ × ℝ: a finite set of more than two points that is not all on one line has an ordinary pair.

Line counts exclude blank lines; comments and documentation count. The total is the commit-pinned first-party Lean import closure; Mathlib and other third-party dependencies are excluded.

The theorem at a glance

Sylvester–Gallai at a glance

Editorial incidence-geometry poster with a finite non-collinear point constellation and one gold ordinary line through exactly two ringed set points, plus the minimum-score proof architecture and finite real-plane scope boundary.
Every finite non-collinear subset of the real affine plane with more than two points determines a line containing exactly two set points.

Accessible transcript

2 < S.card ∧ ¬FinsetCollinear S ⇒ ∃ a b, OrdinaryPair S a b

The checked proof chooses a noncollinear triple of minimum positive line-point score, normalizes its base, and selects adjacent parameters on that line. Any third set point on the selected line would create a triple with smaller score, so the remaining pair is ordinary. The argument is finite and specific to the real affine plane.

Read the complete poster transcript

INCIDENCE GEOMETRY · REAL AFFINE PLANE

SYLVESTER–GALLAI THEOREM

ONE LINE · EXACTLY TWO SET POINTS

FOR EVERY FINITE S ⊂ ℝ²

|S| > 2 · S IS NOT COLLINEAR

S DETERMINES AN ORDINARY LINE

An ordinary line contains exactly two points of S.

HOW THE PROOF MOVES

1 · CHOOSE A MINIMUM TRIPLE

Minimize a positive line-to-point score.

2 · NORMALIZE THE BASE LINE

Send its endpoints to (0,0) and (1,0).

3 · ISOLATE AN ADJACENT GAP

If a third set point lies on the base line, use neighboring parameters.

4 · FORCE A SMALLER SCORE

The new triple contradicts minimality; an ordinary pair remains.

EXACT SCOPE

Finite subsets of the concrete real affine plane. Not an infinite, projective, or abstract incidence-space theorem.

Theorem schematic

One ordinary line in a finite constellation

A finite non-collinear point set with one gold ordinary line passing through exactly two ringed points while every other point lies visibly off the line.
Every finite non-collinear real planar set with more than two points determines an ordinary line containing exactly two set points.

finite S ⊂ ℝ² ∧ |S| > 2 ∧ ¬collinear(S) ⇒ ∃ ordinary pair in S

Among any finite noncollinear real planar set with more than two points, there are two set points whose line contains no third point of the set. That pair is the ordinary-pair witness asserted by the theorem.

Proof architecture

How score descent forces an ordinary pair

5 curated stages

The checked proof chooses a noncollinear triple of least positive line-point score, normalizes its base, selects adjacent baseline parameters, and shows that any third point on their line would create a strictly smaller score.

These source-anchored stages explain the retained proof route. They are not an extracted Lean proof-term dependency graph.

  1. A finite real-plane constellation surrounds one highlighted minimum-score triple with a gold altitude ribbon and green base.
    Among the finite noncollinear triples, choose one whose squared line distance relative to base length has minimum positive score.
    01

    Choose a least positive line-point score

    linePointScore t ≤ linePointScore u

    Finiteness makes the set of noncollinear triples finite, while noncollinearity makes their line-point scores positive. A minimum-score triple supplies the descent invariant: every later candidate must have score at least this chosen value.

    Lean lemmas for this step
    • noncollinearTriples
    • linePointScore
    • linePointScore_pos_of_noncollinear
    • exists_min_linePointScore_noncollinear
  2. The selected finite configuration moves into a normalized horizontal base with its off-line gold witness preserved.
    Translate, rotate, and scale the selected base to a horizontal unit interval while preserving score comparisons.
    02

    Normalize the selected base to the x-axis

    normalizeToXAxis a b a = (0,0); normalizeToXAxis a b b = (1,0)

    normalizeToXAxis sends the selected endpoints to (0,0) and (1,0), keeps the witness off the axis, and preserves the strict score comparison needed for descent. The remaining argument can therefore use ordered real coordinates on one fixed baseline.

    Lean lemmas for this step
    • normalizeToXAxis
    • normalizeToXAxis_left
    • normalizeToXAxis_right
    • normalizeToXAxis_snd_ne_zero_of_not_collinear3
    • linePointScore_normalizeToXAxis_lt_iff
  3. A finite row of baseline parameter beads sits below one gold off-line witness and its perpendicular projection.
    The set points collinear with the selected base give a finite ordered set of real parameters.
    03

    Record the finite baseline parameters

    baseLineParameters S a b

    Each set point on the selected line has a unique real parameter after normalization. Collecting those parameters in a finite ordered set converts incidence on the baseline into an order problem that supports adjacent-element selection.

    Lean lemmas for this step
    • baseLineParameters
    • mem_baseLineParameters_of_collinear
    • exists_of_mem_baseLineParameters
    • left_mem_baseLineParameters
    • right_mem_baseLineParameters
  4. Ghost selector rays on one inset finite parameter line converge to one solid gold adjacent pair.
    Every location of the witness projection yields a neighboring pair with no baseline parameter strictly between them.
    04

    Select adjacent parameters around the projection

    choose adjacent x < y around the projection

    The perpendicular projection of the off-line witness lies either between available parameters or beyond one side. The corresponding bracket or one-sided adjacency lemma selects x<y with no recorded baseline parameter between them.

    Lean lemmas for this step
    • exists_projectionLeftAdjacentParameter_of_mem_of_exists_gt
    • exists_projectionRightAdjacentParameter_of_mem_of_exists_lt
    • exists_ordinaryPair_of_min_strict_bracket_baseLineParameters
    • exists_leftAdjacentParametersBeforeProjection_of_forall_lt
    • exists_rightAdjacentParametersAfterProjection_of_forall_gt
    • exists_ordinaryPair_of_min_baseLineParameters
  5. Exactly two gold points lie on a fading gold ordinary line while a blue shorter-score counterfactual ends at a small vermilion fracture.
    A third point on a nonordinary selected line would create a strictly smaller-score triple, so the retained pair is ordinary.
    05

    A smaller score contradiction leaves an ordinary pair

    ¬ OrdinaryPair → ∃ w, linePointScore w < linePointScore (a,b,p)

    If the adjacent pair were not ordinary, another set point would lie on its line. The normalization and adjacency inequalities then construct a noncollinear triple with score below the chosen minimum, a contradiction; hence exactly the selected two set points lie on the line.

    Lean lemmas for this step
    • exists_collinear_ne_of_not_ordinaryPair
    • exists_descent_of_adjacent_baseLineParameters
    • ordinary_or_descent_of_adjacent_baseLineParameters
    • exists_ordinaryPair_of_min_adjacent_baseLineParameters
    • exists_ordinaryPair_of_min_baseLineParameters
    • sylvesterGallai

Exact formal proposition

Hypotheses and conclusion

This is the meaningful proposition proved by the checked wrapper declaration. It is extracted from the same commit-pinned Lean source.

def SylvesterGallaiStatement : Prop :=
  ∀ S : Finset Point, 2 < S.card → ¬ FinsetCollinear S →
    ∃ a b : Point, OrdinaryPair S a b
Definitions used in this proposition

Point

abbrev Point : Type := ℝ × ℝ

Collinear3

def Collinear3 (p q r : Point) : Prop :=
  orientationDet p q r = 0

FinsetCollinear

def FinsetCollinear (S : Finset Point) : Prop :=
  ∃ a ∈ S, ∃ b ∈ S, a ≠ b ∧ ∀ c ∈ S, Collinear3 a b c

OrdinaryPair

def OrdinaryPair (S : Finset Point) (a b : Point) : Prop :=
  a ∈ S ∧ b ∈ S ∧ a ≠ b ∧
    ∀ c ∈ S, Collinear3 a b c → c = a ∨ c = b
Lean wrapper declaration

The checked endpoint names the proposition displayed above. This short declaration is useful for source identity, but the expanded proposition is the mathematical statement to read first.

theorem sylvesterGallai :
    SylvesterGallaiStatement

Result boundary

What this page does—and does not—establish

The concrete finite Sylvester-Gallai theorem over ℝ × ℝ: a finite set of more than two points that is not all on one line has an ordinary pair.

About these visual explanations

These AI-generated visuals explain the theorem and proof route; they are not proof evidence. Their publication review was completed separately from review of the formal result. The exact Lean proposition and checked source remain authoritative.

Continue the mathematics

Start from the complete checked source

The pinned theorem and its complete local import closure let internal and external agents inspect the proof, compare an alternate route, isolate reusable lemmas, or formulate a stronger exact statement. Lean checks every proposed extension against its exact formal statement.

The ZIP contains the checked first-party Lean import closure, exact statements and boundaries, license, notice, evidence, source-footprint manifest, and an agent continuation file. Mathlib and other third-party dependencies are not bundled.

Formal-result publication and review details

Independent publication review

The formal theorem's publication gates are accepted

Lean checks the proof. Independent AI review separately accepted evidence completeness, statement alignment, result boundary, and the retained theorem wording. Those gates apply to the formal result; generated media is reviewed and promoted separately. Neither review replaces Lean's proof check or broadens the theorem.

01

Formal evidence

Independent review accepted the recorded build, exact declarations, unfinished-step scan, and axiom evidence.

02

Statement alignment

The formal declaration was accepted against the named theorem and its exact variant.

03

Result boundary

The accepted boundary keeps nearby stronger or commonly confused claims out of scope.

04

Public wording

Independent review accepted the retained theorem explanation and source presentation. Generated media follows a separate review and promotion gate.

05

Canonical source

The first-party source link is pinned to the checked package commit and exact Lean file.

06

Accepted result

A validated accepted-result record binds the four reviews to the checked formalization.

Expanded visual

Open original image in a new tab