57 lines
2.1 KiB
Lean4
57 lines
2.1 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 ElementarGeometrie.Affine.Desargues
|
|
|
|
/-!
|
|
# The Pappus property and Pappus planes
|
|
|
|
Following Soergel's notes, an affine incidence plane has the **Pappus property**
|
|
if, for two lines `g, h` and points `xᵢ ∈ g`, `yᵢ ∈ h`, parallelism of
|
|
`x₁y₂ ∥ x₂y₁` and `x₂y₃ ∥ x₃y₂` forces `x₁y₃ ∥ x₃y₁`.
|
|
|
|
A **Pappus plane** is an affine incidence plane with both the Pappus property and
|
|
the Desargues property. The source proves that the Pappus property already implies
|
|
the Desargues property; this is recorded here as a theorem statement.
|
|
|
|
## Main definitions
|
|
|
|
* `AffineIncidencePlane.PappusProperty`
|
|
* `AffineIncidencePlane.IsPappusPlane`
|
|
-/
|
|
|
|
universe u
|
|
|
|
variable {X : Type u}
|
|
|
|
namespace AffineIncidencePlane
|
|
|
|
open IncidenceGeometry
|
|
|
|
/-- The **Pappus property**: for lines `g, h` and points `xᵢ ∈ g \ h`,
|
|
`yᵢ ∈ h \ g`, parallelism of `x₁y₂ ∥ x₂y₁` and `x₂y₃ ∥ x₃y₂` implies
|
|
`x₁y₃ ∥ x₃y₁`. -/
|
|
def PappusProperty (P : AffineIncidencePlane X) : Prop :=
|
|
∀ g ∈ P.lines, ∀ h ∈ P.lines,
|
|
∀ x₁ x₂ x₃ y₁ y₂ y₃ : X,
|
|
x₁ ∈ g → x₂ ∈ g → x₃ ∈ g → y₁ ∈ h → y₂ ∈ h → y₃ ∈ h →
|
|
x₁ ∉ h → x₂ ∉ h → x₃ ∉ h → y₁ ∉ g → y₂ ∉ g → y₃ ∉ g →
|
|
P.Parallel (P.toIncidenceGeometry.line x₁ y₂) (P.toIncidenceGeometry.line x₂ y₁) →
|
|
P.Parallel (P.toIncidenceGeometry.line x₂ y₃) (P.toIncidenceGeometry.line x₃ y₂) →
|
|
P.Parallel (P.toIncidenceGeometry.line x₁ y₃) (P.toIncidenceGeometry.line x₃ y₁)
|
|
|
|
/-- A **Pappus plane** is an affine incidence plane with both the Pappus property
|
|
and the Desargues property. -/
|
|
structure IsPappusPlane (P : AffineIncidencePlane X) : Prop where
|
|
pappus : P.PappusProperty
|
|
desargues : P.DesarguesProperty
|
|
|
|
/-- The Pappus property implies the Desargues property. -/
|
|
theorem desargues_of_pappus {P : AffineIncidencePlane X} (h : P.PappusProperty) :
|
|
P.DesarguesProperty := by
|
|
sorry
|
|
|
|
end AffineIncidencePlane
|