Documentation

MathlibNt.SieveTheory.LinearSieve.RosserChains

Rosser boundary chains and logarithmic regions #

Upper admissibility, sorted prime chains, lower fixed-depth recursions, pair removal, and logarithmic-coordinate regions.

0.3. Finite upper Rosser weights #

The standard upper Rosser test on a finite set of distinct primes. The test is imposed at odd positions in the decreasing list: at p = p_{2l+1} it says p₁⋯p_{2l} * p_{2l+1}^3 < D.

Equations
Instances For

    The upper Rosser coefficient attached to a finite set of distinct primes.

    Equations
    Instances For

      The even Rosser boundary exposed when a new least prime is inserted: the old set is active, but adjoining q crosses either the level or an odd-position Rosser constraint.

      Equations
      Instances For
        theorem MathlibNt.SieveTheory.LinearSieve.sorted_prefix_toFinset_eq_filter_ge (s : Finset ) (i : ) (hi : i < (s.sort fun (x1 x2 : ) => x1 x2).length) :
        (List.take (i + 1) (s.sort fun (x1 x2 : ) => x1 x2)).toFinset = {qs | (s.sort fun (x1 x2 : ) => x1 x2)[i] q}

        The first i + 1 entries of the decreasing enumeration of a finite set are exactly the entries greater than or equal to its entry at index i.

        theorem MathlibNt.SieveTheory.LinearSieve.sorted_prefix_prod_eq_filter_ge (s : Finset ) (i : ) (hi : i < (s.sort fun (x1 x2 : ) => x1 x2).length) :
        {qs | (s.sort fun (x1 x2 : ) => x1 x2)[i] q}.prod id = (List.take i (s.sort fun (x1 x2 : ) => x1 x2)).prod * (s.sort fun (x1 x2 : ) => x1 x2)[i]

        Product form of sorted_prefix_toFinset_eq_filter_ge: the filtered Rosser prefix is the product of the preceding entries and the entry at i.

        theorem MathlibNt.SieveTheory.LinearSieve.upperRosserAdmissibleSet_iff_sorted_prefix_cube_lt {D : } {s : Finset } :
        UpperRosserAdmissibleSet D s ∀ (i : ) (hi : i < (s.sort fun (x1 x2 : ) => x1 x2).length), Even i(List.take i (s.sort fun (x1 x2 : ) => x1 x2)).prod * (s.sort fun (x1 x2 : ) => x1 x2)[i] ^ 3 < D

        The upper Rosser admissibility test in canonical chain coordinates. In the decreasing enumeration p₀ > p₁ > ..., precisely the even zero-based indices are tested, and their inequalities are p₀ ... pᵢ₋₁ * pᵢ³ < D.

        theorem MathlibNt.SieveTheory.LinearSieve.lowerRosserAdmissibleSet_iff_sorted_prefix_cube_lt {D : } {s : Finset } :
        LowerRosserAdmissibleSet D s ∀ (i : ) (hi : i < (s.sort fun (x1 x2 : ) => x1 x2).length), ¬Even i(List.take i (s.sort fun (x1 x2 : ) => x1 x2)).prod * (s.sort fun (x1 x2 : ) => x1 x2)[i] ^ 3 < D

        The lower Rosser admissibility test in canonical chain coordinates. In the strictly decreasing enumeration, precisely the odd zero-based indices are tested by the cubic prefix inequalities.

        The ordered odd-chain region underlying one lower Rosser boundary term.

        Equations
        Instances For
          theorem MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundarySet_iff_sorted_chain {D q : } {s : Finset } (hqs : qs) (hqprime : Nat.Prime q) (hqmin : ps, q p) :
          LowerRosserBoundarySet D q s LowerRosserBoundaryChain D q (s.sort fun (x1 x2 : ) => x1 x2)

          A lower boundary subset is equivalent to its canonical strictly decreasing, odd-length boundary chain.

          The explicit ordered-chain region underlying one upper Rosser boundary term. This is the finite region that is later reindexed and compared with the Buchstab nested integrals.

          Equations
          Instances For

            A singleton lower Rosser boundary chain has no internal cubic test; only level activity and the terminal boundary remain.

            theorem MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChain_cons_cons_iff {D q p₀ p₁ : } {xs : List } (hp₀ : 0 < p₀) (hp₁ : 0 < p₁) :
            LowerRosserBoundaryChain D q (p₀ :: p₁ :: xs) p₁ < p₀ (∀ pxs, p < p₁) p₀ * p₁ ^ 3 < D LowerRosserBoundaryChain (D ⌈/⌉ (p₀ * p₁)) q xs

            Removing the first two entries of a positive lower Rosser boundary chain produces the exact residual lower chain at the ceiling-divided level. The peeled pair contributes the first odd-index test p₀ * p₁^3 < D.

            Canonical decreasing-list representatives of all lower boundary subsets of P; every represented list has odd length.

            Equations
            Instances For
              theorem MathlibNt.SieveTheory.LinearSieve.mem_lowerRosserBoundaryChains_iff {D q : } {P : Finset } (hqs : qP) (hqprime : Nat.Prime q) (hqmin : pP, q p) {l : List } :

              Exact membership characterization for the finite lower-boundary chain carrier.

              theorem MathlibNt.SieveTheory.LinearSieve.mem_lowerRosserBoundaryChains_fixedPairDepth0_iff {D q : } {P : Finset } (hqs : qP) (hqprime : Nat.Prime q) (hqmin : pP, q p) {l : List } (k : ) :

              The zero-based pair-depth slice consists of chains of length 2*k+1. It corresponds to Suzuki's full-chain source index 2*k+2 and Iwaniec's lower depth k+1.

              Lower boundary chains at Suzuki's full-chain source index n. The terminal least prime is external to the stored list, hence l.length + 1 = n.

              Equations
              Instances For

                Exact source-index membership characterization.

                Every inhabited lower source-index slice has even Suzuki index.

                theorem MathlibNt.SieveTheory.LinearSieve.sum_lowerRosserBoundary_eq_sum_chains (D q : ) (P : Finset ) (w : ) :
                uP.powerset with (LowerRosserBoundarySet D q) u, pu, w p = llowerRosserBoundaryChains D q P, (List.map w l).prod

                Exact injective finite reindexing of the lower-boundary powerset sum by canonical odd decreasing chains.

                Every lower boundary chain belongs to a unique odd-depth slice.

                The selected density mass of lower Rosser boundary chains at zero-based pair-depth k, i.e. of exact odd length 2*k+1.

                Equations
                Instances For

                  Zero-based pair-depth k is Suzuki's full-chain source index 2*k+2.

                  theorem MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChainsFixedPairDepth0Density_zero (nu : ) {D q : } {P : Finset } (hqs : qP) (hqprime : Nat.Prime q) (hqmin : pP, q p) :
                  lowerRosserBoundaryChainsFixedPairDepth0Density nu D q P 0 = pP with p < D D p * q ^ 3, nu p

                  The singleton lower-boundary density is exactly the one-prime terminal cubic shell.

                  theorem MathlibNt.SieveTheory.LinearSieve.mem_lowerRosserBoundaryChains_fixedPairDepth0_succ_iff {D q : } {P : Finset } (hqs : qP) (hqprime : Nat.Prime q) (hprime : pP, Nat.Prime p) (hqmin : pP, q p) {l : List } (k : ) :
                  l {llowerRosserBoundaryChains D q P | l.length = 2 * (k + 1) + 1} p₀P, p₁P, p₁ < p₀ p₀ * p₁ ^ 3 < D ∃ (xs : List ), l = p₀ :: p₁ :: xs xs {xslowerRosserBoundaryChains (D ⌈/⌉ (p₀ * p₁)) q ({pP | p < p₁}) | xs.length = 2 * k + 1}

                  Exact carrier recursion for positive pair-depth lower Rosser boundary chains. Peeling the two largest selected primes shifts source index by two.

                  theorem MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChainsFixedPairDepth0Density_succ (nu : ) {D q : } {P : Finset } (hqs : qP) (hqprime : Nat.Prime q) (hprime : pP, Nat.Prime p) (hqmin : pP, q p) (k : ) :
                  lowerRosserBoundaryChainsFixedPairDepth0Density nu D q P (k + 1) = p₀P, p₁P with p₁ < p₀ p₀ * p₁ ^ 3 < D, nu p₀ * nu p₁ * lowerRosserBoundaryChainsFixedPairDepth0Density nu (D ⌈/⌉ (p₀ * p₁)) q ({pP | p < p₁}) k

                  Exact two-prime successor recurrence for lower fixed-pair-depth density.

                  theorem MathlibNt.SieveTheory.LinearSieve.upperRosserBoundaryChain_cons_cons_iff {D q p₀ p₁ : } {xs : List } (hp₀ : 0 < p₀) (hp₁ : 0 < p₁) :
                  UpperRosserBoundaryChain D q (p₀ :: p₁ :: xs) p₁ < p₀ (∀ pxs, p < p₁) p₀ ^ 3 < D UpperRosserBoundaryChain (D ⌈/⌉ (p₀ * p₁)) q xs

                  Removing the first two entries of a positive upper Rosser boundary chain gives an exact residual chain at the ceiling-divided level.

                  Logarithmic coordinates of a finite prime chain, relative to the sifting cutoff z.

                  Equations
                  Instances For
                    theorem MathlibNt.SieveTheory.LinearSieve.logarithmicCoordinates_sortedGT {z : } {l : List } (hz : 1 < z) (hlpos : pl, 0 < p) (hl : l.SortedGT) :
                    theorem MathlibNt.SieveTheory.LinearSieve.logarithmicCoordinates_mem_Ioc {z : } (hz : 1 < z) {q : } {l : List } (hqpos : 0 < q) (hql : pl, q < p) (hlz : pl, p z) (x : ) :

                    If a chain lies strictly above q and below z, then each logarithmic coordinate lies in (log q / log z, 1].

                    theorem MathlibNt.SieveTheory.LinearSieve.logarithmicCoordinates_prefix_cube {z : } {l : List } (hl : pl, 0 < p) (i : Fin l.length) :
                    (logarithmicCoordinates z (List.take (↑i) l)).sum + 3 * (Real.log (l.get i) / Real.log z) = Real.log ↑((List.take (↑i) l).prod * l.get i ^ 3) / Real.log z
                    theorem MathlibNt.SieveTheory.LinearSieve.log_nat_div_log_le_of_lt_floor_add_one {z Δ : } {n : } (hz : 1 < z) ( : 0 < Δ) (hn : 0 < n) (h : n < Δ⌋₊ + 1) :

                    The real-coordinate region cut out by the decreasing-order, alternating prefix, and terminal-shell conditions of an upper Rosser boundary chain.

                    Equations
                    Instances For

                      The empty upper Rosser region is exactly its terminal cubic shell.

                      theorem MathlibNt.SieveTheory.LinearSieve.upperRosserLogRegion_cons_cons_iff {s a x₀ x₁ : } {xs : List } :
                      UpperRosserLogRegion s a (x₀ :: x₁ :: xs) (x₀ :: x₁ :: xs).SortedGT 3 * x₀ s UpperRosserLogRegion (s - x₀ - x₁) a xs

                      Removing the first pair of coordinates gives the exact Buchstab recursion for the real upper Rosser region.

                      theorem MathlibNt.SieveTheory.LinearSieve.upperRosserLogRegion_pair_iff {s a x₀ x₁ : } :
                      UpperRosserLogRegion s a [x₀, x₁] x₁ < x₀ 3 * x₀ s x₀ + x₁ s s < x₀ + x₁ + 3 * a

                      The first nonempty upper Rosser region is the explicit two-coordinate shell used by the first Buchstab correction.

                      The upper Rosser region with every selected coordinate strictly between the terminal coordinate a and an inherited upper cutoff b.

                      Equations
                      Instances For
                        theorem MathlibNt.SieveTheory.LinearSieve.upperRosserLogRegionBelow_cons_cons_iff {s a b x₀ x₁ : } {xs : List } :
                        UpperRosserLogRegionBelow s a b (x₀ :: x₁ :: xs) a < x₁ x₁ < x₀ x₀ < b 3 * x₀ s UpperRosserLogRegionBelow (s - x₀ - x₁) a x₁ xs

                        Exact bounded form of pair removal. The second peeled coordinate becomes the strict upper cutoff for every coordinate in the residual region.

                        theorem MathlibNt.SieveTheory.LinearSieve.upperRosserLogRegionBelow_of_length_succ_iff {s a b : } {x : List } {k : } (hlen : x.length = 2 * (k + 1)) :
                        UpperRosserLogRegionBelow s a b x ∃ (x₀ : ) (x₁ : ) (xs : List ), x = x₀ :: x₁ :: xs xs.length = 2 * k a < x₁ x₁ < x₀ x₀ < b 3 * x₀ s UpperRosserLogRegionBelow (s - x₀ - x₁) a x₁ xs

                        Induction-ready decomposition of every positive even-depth bounded Rosser region into its first ordered pair and a depth-two-shorter residual region.