Documentation

LeanPool.LongTails.Proofs.GeneralizedCharging

Adapted from k3nfalt/longtails, commit 269cbc764dd36851fd0b64f2f950f329ee127de4. Modified for Lean Pool: module visibility, namespace isolation, and current Mathlib.

An active block and earlier blocks used to count curvature updates.

  • active : ℕ × ℕ

    Start index and count of the active charging block.

  • past : List (ℕ × ℕ)

    Completed charging blocks, in reverse chronological order.

Instances For

    Partition the iteration history into blocks starting at upward curvature changes.

    Equations
    Instances For

      The exponentially weighted inverse-curvature mass of a block.

      Equations
      Instances For

        The sum of the active and completed block charges.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          noncomputable def LongTails.OracleTemplate.GeneralizedAccelerated.downMass (up : ℕ → Bool) (w : ℕ → ℝ) (n : ℕ) :

          The inverse-curvature mass accumulated at downward curvature changes.

          Equations
          Instances For
            theorem LongTails.OracleTemplate.GeneralizedAccelerated.charging_mass_succ (up : ℕ → Bool) (w : ℕ → ℝ) (n : ℕ) :
            downMass up w (n + 1) = downMass up w n + if up (n + 1) = true then 0 else w (n + 1)
            theorem LongTails.OracleTemplate.GeneralizedAccelerated.charging_up {up : ℕ → Bool} (w : ℕ → ℝ) {n : ℕ} (h : up (n + 1) = true) :
            chargeValue w (charging up (n + 1)).active = 2 * w (n + 1) ∧ chargeTotal w (charging up (n + 1)) = chargeTotal w (charging up n) + 2 * w (n + 1)
            theorem LongTails.OracleTemplate.GeneralizedAccelerated.charging_potential {up : ℕ → Bool} {w : ℕ → ℝ} (hfirst : up 0 = false) (hw : ∀ (n : ℕ), 0 ≤ w n) (hnext : ∀ (n : ℕ), w (n + 1) = if up n = true then w n / 4 else 4 * w n) (n : ℕ) :
            chargeValue w (charging up n).active ≤ 16 * w n ∧ (up n = true → chargeValue w (charging up n).active = 2 * w n) ∧ chargeTotal w (charging up n) + 8 / 3 * w (n + 1) ≤ 16 * downMass up w n
            theorem LongTails.OracleTemplate.GeneralizedAccelerated.charging_total_le {up : ℕ → Bool} {w : ℕ → ℝ} (hfirst : up 0 = false) (hw : ∀ (n : ℕ), 0 ≤ w n) (hnext : ∀ (n : ℕ), w (n + 1) = if up n = true then w n / 4 else 4 * w n) (n : ℕ) :
            chargeTotal w (charging up n) ≤ 16 * downMass up w n
            theorem LongTails.OracleTemplate.GeneralizedAccelerated.charging_indices (up : ℕ → Bool) (n : ℕ) :
            (charging up n).active.1 ≤ n ∧ (∀ b ∈ (charging up n).past, b.1 < (charging up n).active.1) ∧ List.Pairwise (fun (a b : ℕ × ℕ) => b.1 < a.1) (chargingEntries (charging up n)) ∧ ∀ b ∈ chargingEntries (charging up n), b.1 = 0 ∨ up b.1 = true

            The total charge from blocks whose start precedes a given iteration.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem LongTails.OracleTemplate.GeneralizedAccelerated.charging_prefix_bound {up : ℕ → Bool} {w B : ℕ → ℝ} (hB0 : 0 ≤ B 0) (hB : Monotone B) (htotal : ∀ (n : ℕ), chargeTotal w (charging up n) ≤ B n) (n : ℕ) (b : ℕ × ℕ) :
              b ∈ chargingEntries (charging up n) → chargePrefix w (charging up n) b.1 ≤ B b.1

              The finite set of active and completed charging blocks.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem LongTails.OracleTemplate.GeneralizedAccelerated.charging_sum_prefix (up : ℕ → Bool) (n : ℕ) (w : ℕ → ℝ) (t : ℕ) :
                ∑ b ∈ chargingSet up n with b.1 < t, chargeValue w b = chargePrefix w (charging up n) t