Module

CrossRatio.lean

Nyll.AnabelianGeometry.ProjectiveLine.CrossRatio
17 declarations indexed from sourceView source ↗

Cross ratios on the projective line

The convention sends the first three ordered points to 0, ∞, 1. Homogeneous coordinates include infinity without a separate affine chart. Independent rescaling does not change the ratio, and the projective definition is evaluated by the proved representative formula.

Declarations

AnabelianGeometry.ProjectiveLine.bracket

The alternating determinant of two homogeneous coordinates.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
def bracket (a b : K × K) : K
AnabelianGeometry.ProjectiveLine.homogeneousCrossRatio

The cross ratio in homogeneous coordinates, with convention (0, ∞, 1, t) ↦ t. As with field division, this is a total function; geometric applications use distinct points.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
def homogeneousCrossRatio (a b c d : K × K) : K
AnabelianGeometry.ProjectiveLine.bracket_smul

Determinants multiply by both scalar factors.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem bracket_smul (a b : K × K) (s t : K) :
    bracket (s • a) (t • b) = (s * t) * bracket a b
AnabelianGeometry.ProjectiveLine.bracket_swap

Swapping the two coordinates of a determinant changes its sign.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem bracket_swap (a b : K × K) : bracket a b = -bracket b a
AnabelianGeometry.ProjectiveLine.homogeneousCrossRatio_smul

Independent nonzero rescaling of the four representatives preserves the cross ratio.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem homogeneousCrossRatio_smul (a b c d : K × K) (s t u v : K)
    (hs : s ≠ 0) (ht : t ≠ 0) (hu : u ≠ 0) (hv : v ≠ 0) :
    homogeneousCrossRatio (s • a) (t • b) (u • c) (v • d) =
      homogeneousCrossRatio a b c d
AnabelianGeometry.ProjectiveLine.crossRatio

The cross ratio of four points of the projective line.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
def crossRatio (a b c d : Projectivization K (K × K)) : K
AnabelianGeometry.ProjectiveLine.crossRatio_mk

The projective cross ratio can be computed with any nonzero representatives.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem crossRatio_mk (a b c d : K × K)
    (ha : a ≠ 0) (hb : b ≠ 0) (hc : c ≠ 0) (hd : d ≠ 0) :
    crossRatio (Projectivization.mk K a ha) (Projectivization.mk K b hb)
      (Projectivization.mk K c hc) (Projectivization.mk K d hd) =
        homogeneousCrossRatio a b c d
AnabelianGeometry.ProjectiveLine.homogeneousCrossRatio_zero_infty_one

Evaluation in the normalized coordinate.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem homogeneousCrossRatio_zero_infty_one (t : K) :
    homogeneousCrossRatio (0, 1) (1, 0) (1, 1) (t, 1) = t
AnabelianGeometry.ProjectiveLine.homogeneousCrossRatio_swap_pairs

Simultaneously swapping the first pair and the last pair preserves the cross ratio.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem homogeneousCrossRatio_swap_pairs (a b c d : K × K) :
    homogeneousCrossRatio b a d c = homogeneousCrossRatio a b c d
AnabelianGeometry.ProjectiveLine.homogeneousCrossRatio_swap_first

Swapping the first two points inverts the cross ratio, even for degenerate coordinates.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem homogeneousCrossRatio_swap_first (a b c d : K × K) :
    homogeneousCrossRatio b a c d = (homogeneousCrossRatio a b c d)⁻¹
AnabelianGeometry.ProjectiveLine.homogeneousCrossRatio_ne_zero

Four appropriate nonzero determinants give a nonzero cross ratio.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem homogeneousCrossRatio_ne_zero (a b c d : K × K)
    (hda : bracket d a ≠ 0) (hcb : bracket c b ≠ 0)
    (hdb : bracket d b ≠ 0) (hca : bracket c a ≠ 0) :
    homogeneousCrossRatio a b c d ≠ 0
AnabelianGeometry.ProjectiveLine.bracket_crossRatio_relation

The determinant identity underlying the six cross-ratio transformations.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem bracket_crossRatio_relation (a b c d : K × K) :
    bracket d b * bracket c a - bracket d a * bracket c b =
      bracket d c * bracket b a
AnabelianGeometry.ProjectiveLine.one_sub_homogeneousCrossRatio

The complementary cross ratio is another quotient of the same brackets.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem one_sub_homogeneousCrossRatio (a b c d : K × K)
    (hdb : bracket d b ≠ 0) (hca : bracket c a ≠ 0) :
    1 - homogeneousCrossRatio a b c d =
      (bracket d c * bracket b a) / (bracket d b * bracket c a)
AnabelianGeometry.ProjectiveLine.homogeneousCrossRatio_ne_one

The cross ratio cannot equal one when both pairs are distinct and its denominator is nonzero.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem homogeneousCrossRatio_ne_one (a b c d : K × K)
    (hdb : bracket d b ≠ 0) (hca : bracket c a ≠ 0)
    (hdc : bracket d c ≠ 0) (hba : bracket b a ≠ 0) :
    homogeneousCrossRatio a b c d ≠ 1
AnabelianGeometry.ProjectiveLine.transform

A linear change of homogeneous coordinates.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
def transform (α β γ δ : K) (a : K × K) : K × K
AnabelianGeometry.ProjectiveLine.bracket_transform

A linear change multiplies each bracket by its determinant.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem bracket_transform (α β γ δ : K) (a b : K × K) :
    bracket (transform α β γ δ a) (transform α β γ δ b) =
      (α * δ - β * γ) * bracket a b
AnabelianGeometry.ProjectiveLine.homogeneousCrossRatio_transform

Every invertible linear coordinate change preserves the homogeneous cross ratio.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace AnabelianGeometry.ProjectiveLine
universe u
variable {K : Type u} [Field K]
theorem homogeneousCrossRatio_transform (α β γ δ : K)
    (h : α * δ - β * γ ≠ 0) (a b c d : K × K) :
    homogeneousCrossRatio (transform α β γ δ a) (transform α β γ δ b)
      (transform α β γ δ c) (transform α β γ δ d) =
        homogeneousCrossRatio a b c d