Documentation

LeanPool.PebblingLean.HypercubeProduct

Hypercubes as Cartesian products #

This file starts the bridge from the abstract Cartesian-product pebbling theorem to hypercubes. The first ingredient is the coordinate split Q_{a+m} ≃ Q_a × Q_m.

Split a vertex of Q_{a+m} into its first a and last m coordinates.

Equations
Instances For

    Append vertices of Q_a and Q_m to obtain a vertex of Q_{a+m}.

    Equations
    Instances For

      Coordinate splitting gives a vertex equivalence Q_{a+m} ≃ Q_a × Q_m.

      Equations
      Instances For

        Hamming distance splits over appended coordinates.

        Appended vertices are adjacent exactly when one factor is adjacent and the other factor is unchanged.

        The coordinate split preserves adjacency.

        Graph isomorphism Q_(a+m) ≃ Q_a □ Q_m.

        Equations
        Instances For

          Hypercube-specific deterministic product step. A solvable distribution E on Q_m specifies how many pebbles must be prepared in each Q_a fiber; if those fiber demands can be met within the given costs, then Q_(a+m) has a solvable distribution with the summed cost.

          theorem PebblingLean.Hypercube.hasSolvableAtMostSize_split_product_of_demand_cost {a m : } {E : Pebbling (HypercubeVertex m)} {demandCost : } (hE : Pebbling.Solvable (graph m) E) (hcost : ∀ (T : ), T 0Pebbling.HasSolvableAtMostSize (graph a) T (demandCost T)) :
          Pebbling.HasSolvableAtMostSize (graph (a + m)) 1 (∑ z : HypercubeVertex m, if E z = 0 then 0 else demandCost (E z))

          Product step where the first-factor cost depends only on the demand value E z, not on the fiber location z.

          Linear fiber-demand recurrence: if every demand T in Q_a can be solved with at most K*T pebbles, then using a solvable distribution E on Q_m as the second-factor demand pattern costs at most K * |E|.

          theorem PebblingLean.Hypercube.hasSolvableAtMostSize_split_product_of_highDemand_demand_cost {a m T : } {E : Pebbling (HypercubeVertex m)} {demandCost : } (hT : 1 T) (hE : Pebbling.SolvableAtLeast (graph m) E T) (hcost : ∀ (t : ), t 0Pebbling.HasSolvableAtMostSize (graph a) t (demandCost t)) :
          Pebbling.HasSolvableAtMostSize (graph (a + m)) 1 (∑ z : HypercubeVertex m, if E z = 0 then 0 else demandCost (E z))

          If the second factor is T-solvable with T ≥ 1, it may be used as the solvable demand pattern in the product step.

          theorem PebblingLean.Hypercube.hasSolvableAtMostSize_split_product_of_uniform_fiber_bound {a m Tbase Tfiber K : } {E : Pebbling (HypercubeVertex m)} (hTbase : 1 Tbase) (hE : Pebbling.SolvableAtLeast (graph m) E Tbase) (hpile_le : ∀ (z : HypercubeVertex m), E z Tfiber) (hfiber : Pebbling.HasSolvableAtMostSize (graph a) Tfiber K) :

          Uniform high-demand fiber recurrence. If E is a T-solvable second-factor distribution and every occupied pile of E has size at most Tfiber, then one Tfiber-solvable construction in Q_a can be reused for every occupied fiber.

          theorem PebblingLean.Hypercube.hasSolvableAtMostSize_split_product_of_uniform_fiber_bound_minPile {a m Tbase Tfiber S K : } {E : Pebbling (HypercubeVertex m)} (hTbase : 1 Tbase) (hE : Pebbling.SolvableAtLeast (graph m) E Tbase) (hpile_le : ∀ (z : HypercubeVertex m), E z Tfiber) (hmin : E.MinOccupiedPileSize S) (hfiber : Pebbling.HasSolvableAtMostSize (graph a) Tfiber (S * K)) :

          Uniform fiber recurrence with occupied-pile compression. If each occupied pile of E has at least S pebbles, and a Tfiber-solvable construction in Q_a costs at most S*K, then the product cost is bounded by |E|*K.

          theorem PebblingLean.Hypercube.hasSolvableAtMostSize_split_product_of_highDemand {a m Tbase costBound S K : } (hTbase : 1 Tbase) (hhigh : HasHighDemandDistribution m Tbase costBound S) (hfiber : Pebbling.HasSolvableAtMostSize (graph a) costBound (S * K)) :
          Pebbling.HasSolvableAtMostSize (graph (a + m)) 1 (costBound * K)

          Recurrence step from a high-demand distribution. If Q_m has a Tbase-solvable distribution of size at most costBound whose occupied piles have size at least S, and Q_a can solve demand costBound with cost S*K, then Q_(a+m) has a solvable distribution with cost costBound*K.

          theorem PebblingLean.Hypercube.hasHighDemandDistribution_split_product_of_highDemand {a m Tbase costBound S K Snew : } (hTbase : 1 Tbase) (hhigh : HasHighDemandDistribution m Tbase costBound S) (hfiber : HasHighDemandDistribution a costBound (S * K) Snew) :
          HasHighDemandDistribution (a + m) 1 (costBound * K) Snew

          High-demand product recurrence preserving the next pile-size invariant. The same high-demand fiber construction in Q_a is reused for every occupied fiber over Q_m; occupied-pile compression in the Q_m distribution pays for this reuse.

          theorem PebblingLean.Hypercube.hasHighDemandDistribution_split_product_of_highDemand_variable {a m Tbase costBound S K Snew : } (hTbase : 1 Tbase) (hhigh : HasHighDemandDistribution m Tbase costBound S) (hfiber : ∀ (t : ), S tHasHighDemandDistribution a t (t * K) Snew) :
          HasHighDemandDistribution (a + m) 1 (costBound * K) Snew

          Variable-demand high-demand product recurrence.

          This is the paper-facing product step. If an occupied second-factor pile has size s_z, we use a first-factor construction for demand s_z and cost s_z*K. Summing over occupied fibers gives total cost |E|*K, and the high-demand bound on E then gives costBound*K.