Documentation

BiasedBisect.Split

Split behavior when changing $s,t$ #

We prove a family of "split" theorems.

When applying perturbation to $s$ and $t$, a single Λline set that pass through multiple lattice points will split into several sets. Consequently, more nₖ are inserted, and the piecewise function $E$ and $w$ split into finer pieces. We describe the behavior of $w$ during this process.

Finally, we will prove that wₗᵢ uniformly shifts towards one direction during splitting, which is a prerequisite for monocity of wₗᵢ over $s/t$.

While these are true for all positive $s$ and $t$, it is only interesting when $s/t$ is rational. If $s/t$ is irrational, all Λline are already singletons, so they won't split further.

Main statements #

Implementation note #

We describe perturbation in δ-ε-like language. The larger $n$ or $k$ we look at, the smaller perturbation is allowed. We will develope an allowed bound for $ε$ for the given range of $k$. By convention, we use capital $K$ to represent the bound for $k$

For simplicity, we will mostly only consider a positive perturbation on t, and leave the rest to symmetry.

def Λₖ (s t : ) (k : ) [PosReal s] [PosReal t] :
Equations
Instances For
    theorem ΛₖNonempty (s t : ) (k : ) [PosReal s] [PosReal t] :
    (Λₖ s t k).Nonempty
    noncomputable instance instFintypeElemProdNatΛₖ (s t : ) (k : ) [PosReal s] [PosReal t] :
    Fintype (Λₖ s t k)
    Equations
    def Λfloored (s t : ) (K : ) [PosReal s] [PosReal t] :
    Equations
    Instances For
      noncomputable def minGap (s t : ) (K : ) [PosReal s] [PosReal t] :
      Equations
      Instances For
        noncomputable def εBound (s t : ) (K : ) [PosReal s] [PosReal t] :
        Equations
        Instances For
          theorem εBoundPos (s t : ) (K : ) [PosReal s] [PosReal t] :
          0 < εBound s t K
          theorem ΛₖIsolated (s t ε : ) (k K : ) (kbound : k < K) [PosReal s] [PosReal t] (εpos : 0 ε) (εbound : ε < t * εBound s t K) (pq : × ) :
          pq Λₖ s t kpq'Λₖ s t (k + 1), δₚ s (t + ε) pq < δₚ s (t + ε) pq'
          theorem ΛflooredIsolated (s t ε : ) (K : ) [PosReal s] [PosReal t] (εpos : 0 ε) (εbound : ε < t * εBound s t K) (pq : × ) :
          pq Λₖ s t Kpq'Λfloored s t K, δₚ s (t + ε) pq < δₚ s (t + ε) pq'
          theorem ΛₖMono (s t ε : ) (k1 k2 K : ) (kh : k1 < k2) (kbound : k1 K) [PosReal s] [PosReal t] (εpos : 0 ε) (εbound : ε < t * εBound s t K) (pq : × ) :
          pq Λₖ s t k1pq'Λₖ s t k2, δₚ s (t + ε) pq < δₚ s (t + ε) pq'
          theorem ΛₖSplit (s t ε : ) (k : ) [PosReal s] [PosReal t] [PosReal ε] (pq : × ) :
          pq Λₖ s t kpq'Λₖ s t k, pq = pq' δₚ s (t + ε) pq = δₚ s (t + ε) pq'
          theorem ΛₖSplit' (s t ε : ) (k K : ) (kbound : k K) [PosReal s] [PosReal t] [PosReal ε] (εbound : ε < t * εBound s t K) (pq : × ) :
          pq Λₖ s t k∀ (pq' : × ), pq = pq' δₚ s (t + ε) pq = δₚ s (t + ε) pq'
          theorem ΛₖtoδNonempty (s t ε : ) (k : ) [PosReal s] [PosReal t] :
          (Finset.image (δₚ s (t + ε)) (Λₖ s t k).toFinset).Nonempty
          noncomputable def δₚSplitMax (s t ε : ) (k : ) [PosReal s] [PosReal t] [PosReal ε] :
          Equations
          Instances For
            theorem δₚSplitMaxInΔ (s t ε : ) (k : ) [PosReal s] [PosReal t] [PosReal ε] :
            δₚSplitMax s t ε k Δ s (t + ε)
            theorem δₚSplitMaxSpec (s t ε : ) (k : ) [PosReal s] [PosReal t] [PosReal ε] (pq : × ) :
            pq Λₖ s t kδₚ s (t + ε) pq δₚSplitMax s t ε k
            noncomputable def kSplitMax (s t ε : ) (k : ) [PosReal s] [PosReal t] [PosReal ε] :
            Equations
            Instances For
              def kSplitMaxSpec (s t ε : ) (k : ) [PosReal s] [PosReal t] [PosReal ε] (pq : × ) :
              pq Λₖ s t kδₚ s (t + ε) pq δₖ s (t + ε) (kSplitMax s t ε k)
              Equations
              • =
              Instances For
                theorem ΛceiledSplit (s t ε : ) (k K : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k K) (εbound : ε < t * εBound s t K) :
                Λceiled s t (δₖ s t k) = Λceiled s (t + ε) (δₖ s (t + ε) (kSplitMax s t ε k))
                theorem ΛceiledSplit_s (s t ε : ) (k K : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k K) (εbound : ε < t * εBound s t K) :
                Λceiled s t (δₖ s t k - s) = Λceiled s (t + ε) (δₖ s (t + ε) (kSplitMax s t ε k) - s)
                theorem nₖSplit (s t ε : ) (k K : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k K) (εbound : ε < t * εBound s t K) :
                nₖ s t (k + 1) = nₖ s (t + ε) (kSplitMax s t ε k + 1)
                theorem wₖ'Split (s t ε : ) (k K : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k K) (εbound : ε < t * εBound s t K) :
                wₖ' s t (k + 1) = wₖ' s (t + ε) (kSplitMax s t ε k + 1)
                theorem wₖSplit (s t ε : ) (k K : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k K) (εbound : ε < t * εBound s t K) :
                wₖ s t (k + 1) = wₖ s (t + ε) (kSplitMax s t ε k + 1)
                theorem wₘᵢₙSplit (s t ε : ) (k K : ) (n : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k < K) (εbound : ε < t * εBound s t K) (nleft : (nₖ s t (k + 1)) n) (nright : n < (nₖ s t (k + 2))) :
                wₘᵢₙ s t n wₘᵢₙ s (t + ε) n
                theorem wₘₐₓSplit (s t ε : ) (k K : ) (n : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k < K) (εbound : ε < t * εBound s t K) (nleft : (nₖ s t (k + 1)) n) (nright : n < (nₖ s t (k + 2))) :
                wₘₐₓ s (t + ε) n wₘₐₓ s t n
                theorem δₖSplitBetween (s t ε : ) (k K k' : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k < K) (εbound : ε < t * εBound s t K) (k'left : kSplitMax s t ε k < k') (k'right : k' kSplitMax s t ε (k + 1)) :
                pqΛₖ s t (k + 1), δₖ s (t + ε) k' = δₚ s (t + ε) pq
                noncomputable def pqOfδₖSplit (s t ε : ) (k K k' : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k < K) (εbound : ε < t * εBound s t K) (k'left : kSplitMax s t ε k < k') (k'right : k' kSplitMax s t ε (k + 1)) :
                Equations
                Instances For
                  noncomputable def pqslope (pq : × ) :
                  Equations
                  Instances For
                    theorem Jslope (pq : × ) (h : pq.2 0) :
                    (Jₚ (pq.1, pq.2 - 1)) / (Jₚ pq) = pqslope pq
                    theorem wslope (s t ε : ) (k K k' : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k < K) (εbound : ε < t * εBound s t K) (k'left : kSplitMax s t ε k < k') (k'right : k' kSplitMax s t ε (k + 1)) :
                    (Jtₖ s (t + ε) k') / (Jₖ s (t + ε) k') = pqslope (pqOfδₖSplit s t ε k K k' kBound εbound k'left k'right)
                    noncomputable def slopeₖ (s t : ) [PosReal s] [PosReal t] (k : ) :
                    Equations
                    Instances For
                      theorem wslopeMono (s t ε : ) (k K : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k < K) (εbound : ε < t * εBound s t K) :
                      StrictMonoOn (slopeₖ s (t + ε)) (Set.Ioc (kSplitMax s t ε k) (kSplitMax s t ε (k + 1)))
                      theorem wₗᵢunder (s t ε : ) (k K k' : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k < K) (εbound : ε < t * εBound s t K) (k'left : kSplitMax s t ε k < k') (k'right : k' < kSplitMax s t ε (k + 1)) :
                      (wₖ s (t + ε) (k' + 1)) < wₗᵢ s t (nₖ s (t + ε) (k' + 1))
                      theorem wₗᵢSplit (s t ε : ) (k K : ) (n : ) [PosReal s] [PosReal t] [PosReal ε] (kBound : k < K) (εbound : ε < t * εBound s t K) (nleft : (nₖ s t (k + 1)) n) (nright : n < (nₖ s t (k + 2))) :
                      wₗᵢ s (t + ε) n wₗᵢ s t n
                      theorem generalizeSplit (prop : (s t ε : ) → [PosReal s] → [PosReal t] → [PosReal ε] → Prop) (localSplit : ∀ (s t ε : ) (k K : ) (n : ) [inst : PosReal s] [inst_1 : PosReal t] [inst_2 : PosReal ε], k < Kε < t * εBound s t K(nₖ s t (k + 1)) nn < (nₖ s t (k + 2))prop s t ε n) (s t n : ) (n2 : 2 n) [PosReal s] [PosReal t] :
                      εbound > 0, ∀ (ε : ) (εpos : 0 < ε), ε < εboundhave this := ; prop s t ε n
                      theorem wₗᵢtSplit (s t n : ) (n2 : 2 n) [PosReal s] [PosReal t] :
                      εbound > 0, ∀ (ε : ) (εpos : 0 < ε), ε < εboundhave this := ; wₗᵢ s (t + ε) n wₗᵢ s t n
                      theorem wₘᵢₙtSplit (s t n : ) (n2 : 2 n) [PosReal s] [PosReal t] :
                      εbound > 0, ∀ (ε : ) (εpos : 0 < ε), ε < εboundhave this := ; wₘᵢₙ s t n wₘᵢₙ s (t + ε) n
                      theorem wₘₐₓtSplit (s t n : ) (n2 : 2 n) [PosReal s] [PosReal t] :
                      εbound > 0, ∀ (ε : ) (εpos : 0 < ε), ε < εboundhave this := ; wₘₐₓ s (t + ε) n wₘₐₓ s t n
                      theorem wₗᵢsSplit (s t n : ) (n2 : 2 n) [PosReal s] [PosReal t] :
                      εbound > 0, ∀ (ε : ) (εpos : 0 < ε), ε < εboundhave this := ; wₗᵢ s t n wₗᵢ (s + ε) t n
                      theorem wₘᵢₙsSplit (s t n : ) (n2 : 2 n) [PosReal s] [PosReal t] :
                      εbound > 0, ∀ (ε : ) (εpos : 0 < ε), ε < εboundhave this := ; wₘᵢₙ s t n wₘᵢₙ (s + ε) t n
                      theorem wₘₐₓsSplit (s t n : ) (n2 : 2 n) [PosReal s] [PosReal t] :
                      εbound > 0, ∀ (ε : ) (εpos : 0 < ε), ε < εboundhave this := ; wₘₐₓ (s + ε) t n wₘₐₓ s t n