Documentation

LeanPool.Erdos132ThreeChain.Basic

Planar squared distances and geometric 3-chains #

This file sets up the elementary objects used throughout the project: points of the Euclidean plane together with their squared distance, squared diameters and non-diameter distance supports, and the geometric 3-chain

L h a = {a, 3a, 9a, …, 3 ^ (h - 1) * a}

that the main theorem forbids as a non-diameter distance support.

Everything is deliberately self-contained and coordinate-based: Point is ℝ × ℝ and sqDist is the explicit sum of two squares, so that every planarity identity used later (Heron, the anchored Gram determinant) is provable by ring from coordinates.

@[reducible, inline]

A point of the Euclidean plane.

Equations
Instances For

    The squared Euclidean distance between two points of the plane.

    Equations
    Instances For
      @[simp]
      theorem Erdos132ThreeChain.sqDist_pos {p q : Point} (h : p q) :
      0 < sqDist p q

      IsSqDiameter X D says that D is the squared diameter of X: it is realised by two distinct points of X, and it dominates every squared distance inside X.

      Equations
      Instances For

        The geometric 3-chain of length h and base a: the set {a * 3 ^ j | j < h}.

        Equations
        Instances For
          theorem Erdos132ThreeChain.mem_chain_iff {a x : } {h : } :
          x chain a h j < h, x = a * 3 ^ j
          theorem Erdos132ThreeChain.base_mem_chain {a : } {h : } (hh : 0 < h) :
          a chain a h
          theorem Erdos132ThreeChain.triple_base_mem_chain {a : } {h : } (hh : 2 h) :
          a * 3 chain a h

          The set of squared distances realised by distinct points of X that are not the squared diameter D.

          Equations
          Instances For

            IsChainValue c x records that x is c times a nonnegative power of three. It is the scale-free shadow of chain: if c is the smallest value of a chain that x belongs to, then x = c * 3 ^ j for some j : ℕ.

            Equations
            Instances For
              theorem Erdos132ThreeChain.IsChainValue.pos {c x : } (hc : 0 < c) (h : IsChainValue c x) :
              0 < x