Documentation

LeanPool.FullyDynamicMatching.FD1D.V5.Dynamics

Count dynamics for the v5 policy #

This module instantiates the generic delete-then-arrive inventory kernel with the v5 deletion masses and connects it to the harmonic potential with regularizer a / 2.

@[reducible, inline]

Regard a fixed-total leaf-count vector as a coherent tree inventory.

Equations
Instances For
    theorem FD1D.V5.Dynamics.aggregatedInventory_count {L m : ℕ} (x : InventoryState (DyadicNode L) m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
    (aggregatedInventory x).count d v = ∑ w ∈ leafBlock hdL v, ↑x w
    noncomputable def FD1D.V5.Dynamics.deletionRule {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) :

    The v5 leaf deletion probabilities.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem FD1D.V5.Dynamics.deletionRule_prob {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) (w : DyadicNode L) :
      noncomputable def FD1D.V5.Dynamics.kernel {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) :

      Delete according to the v5 rule and add an independent uniform leaf.

      Equations
      Instances For
        @[simp]
        theorem FD1D.V5.Dynamics.kernel_apply {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x y : InventoryState (DyadicNode L) m) :
        (kernel a ha hm).trans x y = ∑ deleted : DyadicNode L, ∑ arrived : DyadicNode L, if x.move deleted arrived = y then TreePolicy.deletionMass (aggregatedInventory x) a L deleted * (1 / ↑(Fintype.card (DyadicNode L))) else 0
        theorem FD1D.V5.Dynamics.kernel_move_pos {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) {deleted arrived : DyadicNode L} (hdeleted : 0 < ↑x deleted) :
        0 < (kernel a ha hm).trans x (x.move deleted arrived)
        theorem FD1D.V5.Dynamics.kernel_irreducible {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) :
        theorem FD1D.V5.Dynamics.kernel_hasPositiveLoops {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) :

        Node marginals and count updates #

        noncomputable def FD1D.V5.Dynamics.deletionMarginal {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :

        Probability that the deleted leaf lies below a given node.

        Equations
        Instances For
          theorem FD1D.V5.Dynamics.deletionMarginal_eq {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
          theorem FD1D.V5.Dynamics.aggregatedInventory_move_count {L m : ℕ} (x : InventoryState (DyadicNode L) m) {deleted arrived : DyadicNode L} (hdeleted : 0 < ↑x deleted) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
          theorem FD1D.V5.Dynamics.kernel_expectation_eq_delete_arrive {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) (f : InventoryState (DyadicNode L) m → ℝ) :
          ∑ y : InventoryState (DyadicNode L) m, (kernel a ha hm).trans x y * f y = ∑ deleted : DyadicNode L, ∑ arrived : DyadicNode L, (deletionRule a ha hm).prob x deleted * (1 / ↑(Fintype.card (DyadicNode L))) * f (x.move deleted arrived)

          State observables and exact harmonic drift #

          Aggregated inventory counts viewed as labels on every dyadic level.

          Equations
          Instances For
            noncomputable def FD1D.V5.Dynamics.deletionLabel {L m : ℕ} (a : ℝ) (x : InventoryState (DyadicNode L) m) (d : ℕ) :

            Deletion mass at every node of the aggregated inventory tree.

            Equations
            Instances For
              noncomputable def FD1D.V5.Dynamics.rateLabel {L m : ℕ} (a : ℝ) (x : InventoryState (DyadicNode L) m) (d : ℕ) :

              Deletion rate at every node of the aggregated inventory tree.

              Equations
              Instances For
                noncomputable def FD1D.V5.Dynamics.statePotential {L m : ℕ} (a : ℝ) (x : InventoryState (DyadicNode L) m) :

                The manuscript potential Φ, whose harmonic shift is a/2.

                Equations
                Instances For
                  noncomputable def FD1D.V5.Dynamics.stateDrift {L m : ℕ} (a : ℝ) (x : InventoryState (DyadicNode L) m) :

                  The principal restoring term D.

                  Equations
                  Instances For
                    noncomputable def FD1D.V5.Dynamics.stateRemainder {L m : ℕ} (a : ℝ) (x : InventoryState (DyadicNode L) m) :

                    The exact curvature remainder R.

                    Equations
                    Instances For
                      noncomputable def FD1D.V5.Dynamics.stateRateEnergy {L m : ℕ} (a : ℝ) (x : InventoryState (DyadicNode L) m) (d : ℕ) :

                      Hazard energy of the state rate labels at the selected dyadic level.

                      Equations
                      Instances For
                        noncomputable def FD1D.V5.Dynamics.stateTransportEnergy {L m : ℕ} (a : ℝ) (x : InventoryState (DyadicNode L) m) :

                        Transport energy of the aggregated inventory state.

                        Equations
                        Instances For

                          Pointwise energy and remainder bounds #

                          theorem FD1D.V5.Dynamics.deletionLabel_nonneg {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
                          0 ≤ deletionLabel a x d v
                          theorem FD1D.V5.Dynamics.deletionLabel_le_one {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
                          deletionLabel a x d v ≤ 1
                          theorem FD1D.V5.Dynamics.intervalMass_le_count_add_half_mul_rate {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
                          nodeMass d v ≤ (↑(countLabel x d v) + a / 2) * rateLabel a x d v
                          theorem FD1D.V5.Dynamics.stateDrift_lower_bound {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) :
                          stateDrift a x ≥ a / 1000 * stateRateEnergy a x L + stateTransportEnergy a x / (1000 * a) - 501 * a / (1000 * ↑m ^ 2)
                          theorem FD1D.V5.Dynamics.stateRateEnergy_step {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) {d : ℕ} (hdL : d < L) :
                          theorem FD1D.V5.Dynamics.stateRateEnergy_mono_to_depth {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) {i j : ℕ} (hij : i ≤ j) (hjL : j ≤ L) :
                          theorem FD1D.V5.Dynamics.stateRemainder_nonneg {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) :
                          theorem FD1D.V5.Dynamics.stateRemainder_le_sum_rateEnergy {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) :
                          stateRemainder a x ≤ ∑ d ∈ Finset.range L, stateRateEnergy a x (d + 1)
                          theorem FD1D.V5.Dynamics.sum_stateRateEnergy_le_depth_mul {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) :
                          ∑ d ∈ Finset.range L, stateRateEnergy a x (d + 1) ≤ ↑L * stateRateEnergy a x L
                          theorem FD1D.V5.Dynamics.stateRemainder_bounds {L m : ℕ} (a : ℝ) (ha : 0 < a) (hm : 0 < m) (x : InventoryState (DyadicNode L) m) :
                          0 ≤ stateRemainder a x ∧ stateRemainder a x ≤ ∑ d ∈ Finset.range L, stateRateEnergy a x (d + 1) ∧ ∑ d ∈ Finset.range L, stateRateEnergy a x (d + 1) ≤ ↑L * stateRateEnergy a x L