Documentation

LeanPool.Besicovitch.Example.Graph

Besicovitch's function #

Besicovitch's purely unrectifiable set with lower density 1/2 is the graph of the function g = ∑ₙ fₙ, where fₙ is a square wave of period 2 * 2^(-n²) and amplitude 2^(-n²) / n. This file defines the function and proves the two estimates that everything else rests on: inside a level-n cell g varies by at most 4 * 2^(-(n+1)²) / (n+1), and across a level-n cell boundary it jumps by at least 2^(-n²) / n.

The construction follows Capdevila, Besicovitch's example in higher dimensions, arXiv:2607.05206, §2, which in turn follows Besicovitch (1938) and Dickinson (1939).

The length 2^(-n²) of a level-n cell.

Equations
Instances For

    The amplitude 2^(-n²) / n of the level-n square wave.

    Equations
    Instances For
      noncomputable def LeanPool.Besicovitch.Example.cellIndex (n : ℕ) (x : ℝ) :

      The index of the level-n cell [i * cellLength n, (i + 1) * cellLength n) containing x.

      Equations
      Instances For
        noncomputable def LeanPool.Besicovitch.Example.squareWave (n : ℕ) (x : ℝ) :

        The level-n square wave: -jumpHeight n on even cells, +jumpHeight n on odd cells.

        Equations
        Instances For

          Besicovitch's function, the sum of the square waves of every level n ≥ 1.

          Equations
          Instances For

            The cell lengths #

            Consecutive cell lengths shrink by a factor of at least two.

            At level n ≥ 1 consecutive cell lengths shrink by a factor of at least eight.

            theorem LeanPool.Besicovitch.Example.cellLength_eq_mul {j n : ℕ} (h : j ≤ n) :
            cellLength j = cellLength n * ↑(2 ^ (n ^ 2 - j ^ 2))

            A coarser cell length is a natural multiple of a finer one.

            The square waves #

            On adjacent cells the square waves have opposite signs.

            Points less than a cell length apart lie in the same or in adjacent cells.

            theorem LeanPool.Besicovitch.Example.cellIndex_eq_of_le {j n : ℕ} (hjn : j ≤ n) {x y : ℝ} (h : cellIndex n x = cellIndex n y) :

            Cells of a coarser level are unions of cells of a finer level.

            Summability and the tail bound #

            The amplitudes beyond level n sum to at most 2 * cellLength (n+1) / (n+1).

            The two estimates #

            theorem LeanPool.Besicovitch.Example.besicovitchFun_sub_eq (n : ℕ) (x y : ℝ) :
            besicovitchFun x - besicovitchFun y = ∑ m ∈ Finset.range n, (squareWave (m + 1) x - squareWave (m + 1) y) + ∑' (m : ℕ), (squareWave (n + 1 + m) x - squareWave (n + 1 + m) y)

            The difference of g at two points, with the first n levels separated off.

            theorem LeanPool.Besicovitch.Example.abs_tail_le (n : ℕ) (x y : ℝ) :
            |∑' (m : ℕ), (squareWave (n + 1 + m) x - squareWave (n + 1 + m) y)| ≤ 4 * cellLength (n + 1) / (↑n + 1)

            The tail beyond level n contributes at most 4 * cellLength (n+1) / (n+1).

            (E1) Inside a level-n cell, g varies by at most 4 * cellLength (n+1) / (n+1).

            Adjacent cells at level n are less than two cell lengths apart.

            (E2) Across a level-n cell boundary, g jumps by at least cellLength n / n.