Module

Normalization.lean

Nyll.AnabelianGeometry.ProjectiveLine.Normalization
9 declarations indexed from sourceView source ↗

Normalization of three projective points

Three distinct ordered points admit an explicit invertible coordinate change sending them to zero, infinity, and one. Its affine coordinate is the cross ratio.

Declarations

AnabelianGeometry.ProjectiveLine.affinePoint

A finite point in the standard affine chart.

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 affinePoint (t : K) : Projectivization K (K × K)
AnabelianGeometry.ProjectiveLine.infinityPoint

The point outside the standard affine chart.

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 infinityPoint : Projectivization K (K × K)
AnabelianGeometry.ProjectiveLine.normalization_determinant

The determinant of the normalization matrix.

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 normalization_determinant (a b c : K × K) :
    (a.2 * bracket c b) * (-b.1 * bracket c a) -
      (-a.1 * bracket c b) * (b.2 * bracket c a) =
        bracket a b * bracket c b * bracket c a
AnabelianGeometry.ProjectiveLine.normalizeCoordinates

Normalize a triple of noncollinear homogeneous 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]
def normalizeCoordinates (a b c : K × K)
    (hab : bracket a b ≠ 0) (hcb : bracket c b ≠ 0) (hca : bracket c a ≠ 0) :
    Projectivization K (K × K) ≃ Projectivization K (K × K)
AnabelianGeometry.ProjectiveLine.normalization_transform

The normalization matrix has the two cross-ratio factors as its 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 normalization_transform (a b c d : K × K) :
    transform (a.2 * bracket c b) (-a.1 * bracket c b)
      (b.2 * bracket c a) (-b.1 * bracket c a) d =
        (bracket d a * bracket c b, bracket d b * bracket c a)
AnabelianGeometry.ProjectiveLine.normalizeCoordinates_mk

On the complement of the second point, normalization is the affine 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 normalizeCoordinates_mk (a b c d : K × K)
    (hab : bracket a b ≠ 0) (hcb : bracket c b ≠ 0) (hca : bracket c a ≠ 0)
    (hd : d ≠ 0) (hdb : bracket d b ≠ 0) :
    normalizeCoordinates a b c hab hcb hca (Projectivization.mk K d hd) =
      affinePoint (homogeneousCrossRatio a b c d)
AnabelianGeometry.ProjectiveLine.normalizeCoordinates_first

Normalization sends the first point to zero.

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 normalizeCoordinates_first (a b c : K × K)
    (hab : bracket a b ≠ 0) (hcb : bracket c b ≠ 0) (hca : bracket c a ≠ 0)
    (ha : a ≠ 0) :
    normalizeCoordinates a b c hab hcb hca (Projectivization.mk K a ha) =
      affinePoint 0
AnabelianGeometry.ProjectiveLine.normalizeCoordinates_third

Normalization sends the third point to one.

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 normalizeCoordinates_third (a b c : K × K)
    (hab : bracket a b ≠ 0) (hcb : bracket c b ≠ 0) (hca : bracket c a ≠ 0)
    (hc : c ≠ 0) :
    normalizeCoordinates a b c hab hcb hca (Projectivization.mk K c hc) =
      affinePoint 1
AnabelianGeometry.ProjectiveLine.normalizeCoordinates_second

Normalization sends the second point to infinity.

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 normalizeCoordinates_second (a b c : K × K)
    (hab : bracket a b ≠ 0) (hcb : bracket c b ≠ 0) (hca : bracket c a ≠ 0)
    (hb : b ≠ 0) :
    normalizeCoordinates a b c hab hcb hca (Projectivization.mk K b hb) =
      infinityPoint