Files
elementarGeometrie/ElementarGeometrie/Affine/Pappus.lean
T
Stefan Kebekus b20e936d11
Lean Action CI / build (push) Has been cancelled
Working
2026-06-24 13:46:07 +02:00

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