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
    Inspect dependencies

    MathlibNt.SieveTheory.LinearSieve.UpperRosserAdmissibleSet · compiled type and proof/definition references.

    Inspect dependencies

    MathlibNt.SieveTheory.LinearSieve.UpperRosserAdmissible · compiled type and proof/definition references.

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

    Equations
    Instances For
      Inspect dependencies

      MathlibNt.SieveTheory.LinearSieve.upperRosserSetWeight · compiled type and proof/definition references.

      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
        Inspect dependencies

        MathlibNt.SieveTheory.LinearSieve.UpperRosserBoundarySet · compiled type and proof/definition references.

        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 = {q ∈ s | (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.

        Inspect dependencies

        MathlibNt.SieveTheory.LinearSieve.sorted_prefix_toFinset_eq_filter_ge · compiled type and proof/definition references.

        theorem MathlibNt.SieveTheory.LinearSieve.sorted_prefix_prod_eq_filter_ge (s : Finset ℕ) (i : ℕ) (hi : i < (s.sort fun (x1 x2 : ℕ) => x1 ≥ x2).length) :
        {q ∈ s | (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.

        Inspect dependencies

        MathlibNt.SieveTheory.LinearSieve.sorted_prefix_prod_eq_filter_ge · compiled type and proof/definition references.

        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.

        Inspect dependencies

        MathlibNt.SieveTheory.LinearSieve.upperRosserAdmissibleSet_iff_sorted_prefix_cube_lt · compiled type and proof/definition references.

        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.

        Inspect dependencies

        MathlibNt.SieveTheory.LinearSieve.lowerRosserAdmissibleSet_iff_sorted_prefix_cube_lt · compiled type and proof/definition references.

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

        Equations
        Instances For
          Inspect dependencies

          MathlibNt.SieveTheory.LinearSieve.LowerRosserBoundaryChain · compiled type and proof/definition references.

          theorem MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundarySet_iff_sorted_chain {D q : ℕ} {s : Finset ℕ} (hqs : q ∉ s) (hqprime : Nat.Prime q) (hqmin : ∀ p ∈ s, 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.

          Inspect dependencies

          MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundarySet_iff_sorted_chain · compiled type and proof/definition references.

          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
            Inspect dependencies

            MathlibNt.SieveTheory.LinearSieve.UpperRosserBoundaryChain · compiled type and proof/definition references.

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

            Inspect dependencies

            MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChain_singleton_iff · compiled type and proof/definition references.

            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₀ ∧ (∀ p ∈ xs, 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.

            Inspect dependencies

            MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChain_cons_cons_iff · compiled type and proof/definition references.

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

            Equations
            Instances For
              Inspect dependencies

              MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChains · compiled type and proof/definition references.

              theorem MathlibNt.SieveTheory.LinearSieve.mem_lowerRosserBoundaryChains_iff {D q : ℕ} {P : Finset ℕ} (hqs : q ∉ P) (hqprime : Nat.Prime q) (hqmin : ∀ p ∈ P, q ≤ p) {l : List ℕ} :

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

              Inspect dependencies

              MathlibNt.SieveTheory.LinearSieve.mem_lowerRosserBoundaryChains_iff · compiled type and proof/definition references.

              theorem MathlibNt.SieveTheory.LinearSieve.mem_lowerRosserBoundaryChains_fixedPairDepth0_iff {D q : ℕ} {P : Finset ℕ} (hqs : q ∉ P) (hqprime : Nat.Prime q) (hqmin : ∀ p ∈ P, 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.

              Inspect dependencies

              MathlibNt.SieveTheory.LinearSieve.mem_lowerRosserBoundaryChains_fixedPairDepth0_iff · compiled type and proof/definition references.

              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
                Inspect dependencies

                MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChainsAtSourceIndex · compiled type and proof/definition references.

                Exact source-index membership characterization.

                Inspect dependencies

                MathlibNt.SieveTheory.LinearSieve.mem_lowerRosserBoundaryChainsAtSourceIndex_iff · compiled type and proof/definition references.

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

                Inspect dependencies

                MathlibNt.SieveTheory.LinearSieve.even_sourceIndex_of_mem_lowerRosserBoundaryChainsAtSourceIndex · compiled type and proof/definition references.

                theorem MathlibNt.SieveTheory.LinearSieve.sum_lowerRosserBoundary_eq_sum_chains (D q : ℕ) (P : Finset ℕ) (w : ℕ → ℝ) :
                ∑ u ∈ P.powerset with (LowerRosserBoundarySet D q) u, ∏ p ∈ u, w p = ∑ l ∈ lowerRosserBoundaryChains D q P, (List.map w l).prod

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

                Inspect dependencies

                MathlibNt.SieveTheory.LinearSieve.sum_lowerRosserBoundary_eq_sum_chains · compiled type and proof/definition references.

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

                Inspect dependencies

                MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChains_exists_unique_depth · compiled type and proof/definition references.

                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
                  Inspect dependencies

                  MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChainsFixedPairDepth0Density · compiled type and proof/definition references.

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

                  Inspect dependencies

                  MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChainsFixedPairDepth0Density_eq_sourceIndex · compiled type and proof/definition references.

                  theorem MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChainsFixedPairDepth0Density_zero (nu : ℕ → ℝ) {D q : ℕ} {P : Finset ℕ} (hqs : q ∉ P) (hqprime : Nat.Prime q) (hqmin : ∀ p ∈ P, q ≤ p) :
                  lowerRosserBoundaryChainsFixedPairDepth0Density nu D q P 0 = ∑ p ∈ P with p < D ∧ D ≤ p * q ^ 3, nu p

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

                  Inspect dependencies

                  MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChainsFixedPairDepth0Density_zero · compiled type and proof/definition references.

                  Inspect dependencies

                  MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChainsFixedPairDepth0Density_zero_eq_sourceIndex_two · compiled type and proof/definition references.

                  theorem MathlibNt.SieveTheory.LinearSieve.mem_lowerRosserBoundaryChains_fixedPairDepth0_succ_iff {D q : ℕ} {P : Finset ℕ} (hqs : q ∉ P) (hqprime : Nat.Prime q) (hprime : ∀ p ∈ P, Nat.Prime p) (hqmin : ∀ p ∈ P, q ≤ p) {l : List ℕ} (k : ℕ) :
                  l ∈ {l ∈ lowerRosserBoundaryChains 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 ∈ {xs ∈ lowerRosserBoundaryChains (D ⌈/⌉ (p₀ * p₁)) q ({p ∈ P | 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.

                  Inspect dependencies

                  MathlibNt.SieveTheory.LinearSieve.mem_lowerRosserBoundaryChains_fixedPairDepth0_succ_iff · compiled type and proof/definition references.

                  theorem MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChainsFixedPairDepth0Density_succ (nu : ℕ → ℝ) {D q : ℕ} {P : Finset ℕ} (hqs : q ∉ P) (hqprime : Nat.Prime q) (hprime : ∀ p ∈ P, Nat.Prime p) (hqmin : ∀ p ∈ P, 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 ({p ∈ P | p < p₁}) k

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

                  Inspect dependencies

                  MathlibNt.SieveTheory.LinearSieve.lowerRosserBoundaryChainsFixedPairDepth0Density_succ · compiled type and proof/definition references.

                  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₀ ∧ (∀ p ∈ xs, 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.

                  Inspect dependencies

                  MathlibNt.SieveTheory.LinearSieve.upperRosserBoundaryChain_cons_cons_iff · compiled type and proof/definition references.

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

                  Equations
                  Instances For
                    Inspect dependencies

                    MathlibNt.SieveTheory.LinearSieve.logarithmicCoordinates · compiled type and proof/definition references.

                    Inspect dependencies

                    MathlibNt.SieveTheory.LinearSieve.sum_logarithmicCoordinates_eq_log_prod · compiled type and proof/definition references.

                    theorem MathlibNt.SieveTheory.LinearSieve.logarithmicCoordinates_sortedGT {z : ℝ} {l : List ℕ} (hz : 1 < z) (hlpos : ∀ p ∈ l, 0 < p) (hl : l.SortedGT) :
                    Inspect dependencies

                    MathlibNt.SieveTheory.LinearSieve.logarithmicCoordinates_sortedGT · compiled type and proof/definition references.

                    theorem MathlibNt.SieveTheory.LinearSieve.logarithmicCoordinates_mem_Ioc {z : ℝ} (hz : 1 < z) {q : ℕ} {l : List ℕ} (hqpos : 0 < q) (hql : ∀ p ∈ l, q < p) (hlz : ∀ p ∈ l, ↑p ≤ z) (x : ℝ) :

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

                    Inspect dependencies

                    MathlibNt.SieveTheory.LinearSieve.logarithmicCoordinates_mem_Ioc · compiled type and proof/definition references.

                    theorem MathlibNt.SieveTheory.LinearSieve.logarithmicCoordinates_prefix_cube {z : ℝ} {l : List ℕ} (hl : ∀ p ∈ l, 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
                    Inspect dependencies

                    MathlibNt.SieveTheory.LinearSieve.logarithmicCoordinates_prefix_cube · compiled type and proof/definition references.

                    theorem MathlibNt.SieveTheory.LinearSieve.log_nat_div_log_le_of_lt_floor_add_one {z Δ : ℝ} {n : ℕ} (hz : 1 < z) (hΔ : 0 < Δ) (hn : 0 < n) (h : n < ⌊Δ⌋₊ + 1) :
                    Inspect dependencies

                    MathlibNt.SieveTheory.LinearSieve.log_nat_div_log_le_of_lt_floor_add_one · compiled type and proof/definition references.

                    Inspect dependencies

                    MathlibNt.SieveTheory.LinearSieve.log_div_log_lt_of_floor_add_one_le · compiled type and proof/definition references.

                    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
                      Inspect dependencies

                      MathlibNt.SieveTheory.LinearSieve.UpperRosserLogRegion · compiled type and proof/definition references.

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

                      Inspect dependencies

                      MathlibNt.SieveTheory.LinearSieve.upperRosserLogRegion_nil_iff · compiled type and proof/definition references.

                      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.

                      Inspect dependencies

                      MathlibNt.SieveTheory.LinearSieve.upperRosserLogRegion_cons_cons_iff · compiled type and proof/definition references.

                      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.

                      Inspect dependencies

                      MathlibNt.SieveTheory.LinearSieve.upperRosserLogRegion_pair_iff · compiled type and proof/definition references.

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

                      Equations
                      Instances For
                        Inspect dependencies

                        MathlibNt.SieveTheory.LinearSieve.UpperRosserLogRegionBelow · compiled type and proof/definition references.

                        Inspect dependencies

                        MathlibNt.SieveTheory.LinearSieve.upperRosserLogRegionBelow_nil_iff · compiled type and proof/definition references.

                        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.

                        Inspect dependencies

                        MathlibNt.SieveTheory.LinearSieve.upperRosserLogRegionBelow_cons_cons_iff · compiled type and proof/definition references.

                        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.

                        Inspect dependencies

                        MathlibNt.SieveTheory.LinearSieve.upperRosserLogRegionBelow_of_length_succ_iff · compiled type and proof/definition references.