Documentation

LeanPool.FullyDynamicMatching.FD1D.V5.TreePolicy

The v5 hierarchical tree policy #

This module propagates the local three-cap rule through a complete dyadic tree. It proves the invariant domain, rate-energy monotonicity, the lifted local Bellman inequality, and the deterministic aggregate estimate.

noncomputable def FD1D.V5.TreePolicy.childRate (a p h : ℝ) (x y : ℕ) (side : Fin 2) :

Select the left or right rate of the local rule for one dyadic child.

Equations
Instances For
    def FD1D.V5.TreePolicy.rate {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) :

    Recursively propagated analytic rate, rooted at 1/m.

    Equations
    Instances For

      Inventory count coerced to ℝ.

      Equations
      Instances For
        noncomputable def FD1D.V5.TreePolicy.intervalMass (d : ℕ) (v : DyadicNode d) :

        Node interval mass.

        Equations
        Instances For
          noncomputable def FD1D.V5.TreePolicy.deletionMass {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :

          Deletion mass q_v = N_v h_v.

          Equations
          Instances For
            noncomputable def FD1D.V5.TreePolicy.discrepancy {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :

            Discrepancy t_v = (p_v-q_v)/a.

            Equations
            Instances For
              noncomputable def FD1D.V5.TreePolicy.regularizedMass {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :

              Regularized mass Z_v = p_v/(N_v+a/2).

              Equations
              Instances For
                noncomputable def FD1D.V5.TreePolicy.bellmanValue {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :

                Quadratic Bellman correction at a node.

                Equations
                Instances For
                  noncomputable def FD1D.V5.TreePolicy.imbalance {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :

                  Fixed-spatial-label child deletion imbalance.

                  Equations
                  Instances For
                    @[simp]
                    theorem FD1D.V5.TreePolicy.rate_root {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) :
                    rate I a 0 dyadicRoot = 1 / ↑m
                    @[simp]
                    theorem FD1D.V5.TreePolicy.rate_leftChild {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :
                    rate I a (d + 1) (leftChild v) = LocalPolicy.rateLeft a (intervalMass d v) (rate I a d v) (I.count (d + 1) (leftChild v)) (I.count (d + 1) (rightChild v))
                    @[simp]
                    theorem FD1D.V5.TreePolicy.rate_rightChild {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :
                    rate I a (d + 1) (rightChild v) = LocalPolicy.rateRight a (intervalMass d v) (rate I a d v) (I.count (d + 1) (leftChild v)) (I.count (d + 1) (rightChild v))
                    theorem FD1D.V5.TreePolicy.inventory_children {L m : ℕ} (I : AggregatedInventory L m) (d : ℕ) (hdL : d < L) (v : DyadicNode d) :
                    inventory I d v = inventory I (d + 1) (leftChild v) + inventory I (d + 1) (rightChild v)
                    theorem FD1D.V5.TreePolicy.deletionMass_leftChild {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :
                    deletionMass I a (d + 1) (leftChild v) = LocalPolicy.massLeft a (intervalMass d v) (rate I a d v) (I.count (d + 1) (leftChild v)) (I.count (d + 1) (rightChild v))
                    theorem FD1D.V5.TreePolicy.deletionMass_rightChild {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :
                    deletionMass I a (d + 1) (rightChild v) = LocalPolicy.massRight a (intervalMass d v) (rate I a d v) (I.count (d + 1) (leftChild v)) (I.count (d + 1) (rightChild v))
                    theorem FD1D.V5.TreePolicy.deletionMass_children {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (hdL : d < L) (v : DyadicNode d) :
                    deletionMass I a d v = deletionMass I a (d + 1) (leftChild v) + deletionMass I a (d + 1) (rightChild v)
                    theorem FD1D.V5.TreePolicy.discrepancy_root {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (_ha : 0 < a) (hm : 0 < m) :
                    theorem FD1D.V5.TreePolicy.discrepancy_eq_local {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (hdL : d < L) (v : DyadicNode d) :
                    discrepancy I a d v = LocalPolicy.discrepancy a (intervalMass d v) (rate I a d v) (I.count (d + 1) (leftChild v)) (I.count (d + 1) (rightChild v))
                    theorem FD1D.V5.TreePolicy.regularizedMass_eq_local {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (hdL : d < L) (v : DyadicNode d) :
                    theorem FD1D.V5.TreePolicy.discrepancy_leftChild {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :
                    discrepancy I a (d + 1) (leftChild v) = LocalPolicy.discrepancyLeft a (intervalMass d v) (rate I a d v) (I.count (d + 1) (leftChild v)) (I.count (d + 1) (rightChild v))
                    theorem FD1D.V5.TreePolicy.discrepancy_rightChild {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :
                    discrepancy I a (d + 1) (rightChild v) = LocalPolicy.discrepancyRight a (intervalMass d v) (rate I a d v) (I.count (d + 1) (leftChild v)) (I.count (d + 1) (rightChild v))

                    Invariant domain and feasibility #

                    theorem FD1D.V5.TreePolicy.node_invariants {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) (d : ℕ) :
                    d ≤ L → ∀ (v : DyadicNode d), 0 < rate I a d v ∧ discrepancy I a d v ≤ rate I a d v / 2 ∧ regularizedMass I a d v ≤ rate I a d v
                    theorem FD1D.V5.TreePolicy.rate_pos {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
                    0 < rate I a d v
                    theorem FD1D.V5.TreePolicy.discrepancy_le_half {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
                    discrepancy I a d v ≤ rate I a d v / 2
                    theorem FD1D.V5.TreePolicy.regularizedMass_le_rate {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
                    regularizedMass I a d v ≤ rate I a d v
                    theorem FD1D.V5.TreePolicy.intervalMass_le_count_add_half_mul_rate {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
                    intervalMass d v ≤ (inventory I d v + a / 2) * rate I a d v
                    theorem FD1D.V5.TreePolicy.deletionMass_nonneg {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
                    0 ≤ deletionMass I a d v
                    theorem FD1D.V5.TreePolicy.sum_deletionMass {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (hm : 0 < m) {d : ℕ} (hdL : d ≤ L) :
                    ∑ v : DyadicNode d, deletionMass I a d v = 1
                    theorem FD1D.V5.TreePolicy.leaf_deletionMass_pos_of_count_pos {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) (v : DyadicNode L) (hv : 0 < I.count L v) :
                    0 < deletionMass I a L v
                    theorem FD1D.V5.TreePolicy.regularizedMass_pos {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (d : ℕ) (v : DyadicNode d) :
                    0 < regularizedMass I a d v
                    theorem FD1D.V5.TreePolicy.bellmanValue_nonpos {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) {d : ℕ} (hdL : d ≤ L) (v : DyadicNode d) :
                    bellmanValue I a d v ≤ 0

                    Rate-energy monotonicity #

                    theorem FD1D.V5.TreePolicy.local_rate_average_ge {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) (d : ℕ) (hdL : d < L) (v : DyadicNode d) :
                    rate I a d v ≤ childAverage (rate I a) d v
                    theorem FD1D.V5.TreePolicy.local_rate_energy_nonneg {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) (d : ℕ) (hdL : d < L) (v : DyadicNode d) :
                    0 ≤ childAverage (fun (d : ℕ) (v : DyadicNode d) => rate I a d v ^ 2) d v - rate I a d v ^ 2
                    theorem FD1D.V5.TreePolicy.rateEnergy_mono {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) {d : ℕ} (hdL : d < L) :
                    hazardEnergy (rate I a) d ≤ hazardEnergy (rate I a) (d + 1)
                    theorem FD1D.V5.TreePolicy.rateEnergy_root {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (hm : 0 < m) :
                    hazardEnergy (rate I a) 0 = 1 / ↑m ^ 2

                    Lifted Bellman inequality #

                    theorem FD1D.V5.TreePolicy.imbalance_eq_local {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) (d : ℕ) (v : DyadicNode d) :
                    imbalance I a d v = LocalPolicy.bias a (intervalMass d v) (rate I a d v) (I.count (d + 1) (leftChild v)) (I.count (d + 1) (rightChild v))
                    theorem FD1D.V5.TreePolicy.local_bellman_inequality {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) (d : ℕ) (hdL : d < L) (v : DyadicNode d) :
                    childAverage (fun (d : ℕ) (v : DyadicNode d) => discrepancy I a d v * regularizedMass I a d v) d v + childAverage (bellmanValue I a) d v - bellmanValue I a d v ≥ (childAverage (fun (d : ℕ) (v : DyadicNode d) => rate I a d v ^ 2) d v - rate I a d v ^ 2 + imbalance I a d v ^ 2 / a ^ 2) / 1000
                    theorem FD1D.V5.TreePolicy.local_bellman_inequality_separated {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) (d : ℕ) (hdL : d < L) (v : DyadicNode d) :
                    childAverage (fun (d : ℕ) (v : DyadicNode d) => discrepancy I a d v * regularizedMass I a d v) d v + childAverage (bellmanValue I a) d v - bellmanValue I a d v ≥ (childAverage (fun (d : ℕ) (v : DyadicNode d) => rate I a d v ^ 2) d v - rate I a d v ^ 2) / 1000 + imbalance I a d v ^ 2 / (1000 * a ^ 2)

                    The local certificate with its two energy terms separated.

                    Deterministic aggregate estimate #

                    noncomputable def FD1D.V5.TreePolicy.transportEnergy {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) :

                    The transport energy G = ∑_{v internal} p_v b_v².

                    Equations
                    Instances For
                      noncomputable def FD1D.V5.TreePolicy.restoringDrift {L m : ℕ} (I : AggregatedInventory L m) (a : ℝ) :

                      The restoring term in the drift of the harmonic inventory potential.

                      Equations
                      Instances For
                        theorem FD1D.V5.TreePolicy.restoringDrift_div {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) :
                        restoringDrift I a / a = nonrootWeightedSum (fun (d : ℕ) (v : DyadicNode d) => discrepancy I a d v * regularizedMass I a d v) L

                        The restoring drift is a times the nonroot weighted t Z sum.

                        theorem FD1D.V5.TreePolicy.bellmanValue_root_eq {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) :
                        bellmanValue I a 0 dyadicRoot = -1 / (2 * ↑m * (↑m + a / 2))
                        theorem FD1D.V5.TreePolicy.bellmanValue_root_lower {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) :
                        -(1 / (2 * ↑m ^ 2)) ≤ bellmanValue I a 0 dyadicRoot
                        theorem FD1D.V5.TreePolicy.deterministic_aggregate_estimate {L m : ℕ} (I : AggregatedInventory L m) {a : ℝ} (ha : 0 < a) (hm : 0 < m) :
                        restoringDrift I a ≥ a / 1000 * hazardEnergy (rate I a) L + transportEnergy I a / (1000 * a) - 501 * a / (1000 * ↑m ^ 2)

                        The deterministic aggregate estimate from Proposition 4.3 of the manuscript: D ≥ a H_L / 1000 + G / (1000 a) - 501 a / (1000 m²).