Documentation

LeanPool.SelbergSieve4.SieveLemmas

LeanPool.SelbergSieve4.SieveLemmas #

structure Sieve :

Data for a finite weighted sieve problem.

Instances For
    def Sieve.multSum (s : Sieve) (d : ) :

    Weighted count of support elements divisible by d.

    Equations
    Instances For
      def Sieve.rem (s : Sieve) (d : ) :

      Remainder term after subtracting the expected main term from multSum.

      Equations
      Instances For

        Weighted count of support elements coprime to the sieve modulus.

        Equations
        Instances For

          Selberg local factor product used in the simple upper-bound sieve.

          Equations
          Instances For
            theorem Sieve.selbergTerms_apply (s : Sieve) (d : ) :
            s.selbergTerms d = s.nu d * pd.primeFactors, 1 / (1 - s.nu p)

            Expands selbergTerms as a product over the prime factors of d.

            def Sieve.mainSum (s : Sieve) (μPlus : ) :

            Main contribution of an upper-bound sieve weight.

            Equations
            Instances For
              def Sieve.errSum (s : Sieve) (μPlus : ) :

              Error contribution of an upper-bound sieve weight.

              Equations
              Instances For
                theorem Sieve.nu_pos_of_dvd_prodPrimes (s : Sieve) {d : } (hd : d s.prodPrimes) :
                0 < s.nu d
                theorem Sieve.nu_ne_zero (s : Sieve) {d : } (hd : d s.prodPrimes) :
                s.nu d 0
                theorem Sieve.multSum_eq_main_err (s : Sieve) (d : ) :
                s.multSum d = s.nu d * s.totalMass + s.rem d
                def Sieve.delta (n : ) :

                Kronecker delta at 1, valued in the reals.

                Equations
                Instances For
                  theorem Sieve.nu_lt_self_of_dvd_prodPrimes (s : Sieve) (d : ) :
                  d s.prodPrimesd 1s.nu d < 1
                  theorem Sieve.selbergTerms_pos (s : Sieve) (l : ) (hl : l s.prodPrimes) :
                  theorem Sieve.one_div_selbergTerms_eq_conv_moebius_nu (s : Sieve) (l : ) (hl : Squarefree l) (hnu_nonzero : s.nu l 0) :
                  1 / s.selbergTerms l = dl.divisors, (ArithmeticFunction.moebius (l / d)) * (s.nu d)⁻¹
                  theorem Sieve.nu_eq_conv_one_div_selbergTerms (s : Sieve) (d : ) (hdP : d s.prodPrimes) :
                  (s.nu d)⁻¹ = ls.prodPrimes.divisors, if l d then 1 / s.selbergTerms l else 0
                  def Sieve.lambdaSquared (weights : ) :

                  Lambda-squared upper-bound weights generated from a function on divisors.

                  Equations
                  Instances For
                    theorem Sieve.lambdaSquared_eq_zero_of_support (w : ) (y : ) (hw : ∀ (d : ), ¬↑(d ^ 2) yw d = 0) (d : ) (hd : ¬d y) :
                    theorem Sieve.upperMoebius_of_lambda_sq (weights : ) (hw : weights 1 = 1) :
                    theorem Sieve.lambdaSquared_mainSum_eq_quad_form (s : Sieve) (w : ) :
                    s.mainSum (lambdaSquared w) = d1s.prodPrimes.divisors, d2s.prodPrimes.divisors, s.nu d1 * w d1 * s.nu d2 * w d2 * (s.nu (d1.gcd d2))⁻¹
                    theorem Sieve.lambdaSquared_mainSum_eq_diag_quad_form (s : Sieve) (w : ) :
                    s.mainSum (lambdaSquared w) = ls.prodPrimes.divisors, 1 / s.selbergTerms l * (∑ ds.prodPrimes.divisors, if l d then s.nu d * w d else 0) ^ 2