61 lines
2.3 KiB
Lean4
61 lines
2.3 KiB
Lean4
/-
|
||
Copyright (c) 2026 Stefan Kebekus. All rights reserved.
|
||
Released under Apache 2.0 license as described in the file LICENSE.
|
||
Authors: Stefan Kebekus
|
||
-/
|
||
import Mathlib.LinearAlgebra.AffineSpace.FiniteDimensional
|
||
import ElementarGeometrie.Projective.Space
|
||
|
||
/-!
|
||
# Projective completion of an affine space
|
||
|
||
Following Soergel's notes, the **projective completion** of an affine space `E`
|
||
over a field `K`, with direction space `V`, is the incidence geometry on the
|
||
disjoint union `E ⊕ ℙ K V`. Its lines are of two kinds:
|
||
|
||
* an affine line `g ⊆ E` together with its *point at infinity*, the point of
|
||
`ℙ K V` given by the direction of `g`;
|
||
* the projective lines of `ℙ K V`.
|
||
|
||
The points coming from `ℙ K V` are the **points at infinity**. When `E` is a
|
||
plane, the projective lines of `ℙ K V` reduce to a single **line at infinity**.
|
||
|
||
## Main definitions
|
||
|
||
* `IncidenceGeometry.completionLines` : the system of lines of the completion.
|
||
* `IncidenceGeometry.projectiveCompletion` : the completion as incidence geometry.
|
||
* `IncidenceGeometry.pointsAtInfinity` : the points at infinity.
|
||
-/
|
||
|
||
universe u
|
||
|
||
open scoped LinearAlgebra.Projectivization
|
||
|
||
namespace IncidenceGeometry
|
||
|
||
variable (K V E : Type u) [Field K] [AddCommGroup V] [Module K V] [AddTorsor V E]
|
||
|
||
/-- The system of lines of the projective completion `E ⊕ ℙ K V`:
|
||
|
||
* for every one-dimensional affine subspace `s ⊆ E`, the union of `s` (embedded on
|
||
the left) with its point at infinity `⟨direction s⟩` (embedded on the right);
|
||
* for every projective line `g` of `ℙ K V`, its image on the right. -/
|
||
def completionLines : Set (Set (E ⊕ ℙ K V)) :=
|
||
{L |
|
||
(∃ (s : AffineSubspace K E) (h : Module.finrank K s.direction = 1),
|
||
L = Sum.inl '' (s : Set E) ∪ {Sum.inr (Projectivization.mk'' s.direction h)})
|
||
∨ (∃ g ∈ projectiveLines K V, L = Sum.inr '' g)}
|
||
|
||
/-- The **projective completion** of the affine space `E` as an incidence
|
||
geometry on `E ⊕ ℙ K V`. -/
|
||
noncomputable def projectiveCompletion : IncidenceGeometry (E ⊕ ℙ K V) where
|
||
lines := completionLines K V E
|
||
two_points := by sorry
|
||
unique_line := by sorry
|
||
|
||
/-- The **points at infinity** of the projective completion: the points coming
|
||
from `ℙ K V`. -/
|
||
def pointsAtInfinity : Set (E ⊕ ℙ K V) := Set.range Sum.inr
|
||
|
||
end IncidenceGeometry
|