Documentation

Complexitylib.Algebraic.MassProduction.Nonuniform.HalvingCounts

Exact counts for fixed halving phases #

A successful menu candidate contains enough clean requests for a fixed prefix. Power-of-two batches halve until the singleton phase accepts the last request; no runtime counters are needed for these sizes.

theorem Algebraic.MassProduction.Nonuniform.HalfClean.cleanCount {capacity active : ℕ} {K : Type u_1} {V : Type u_2} [Field K] [Finite K] [AddCommGroup V] [Module K V] (state : PhaseState V (Projectivization K V) capacity active) (candidate : Fin active → Projectivization K V) (successful : HalfClean state candidate) :
(active + 1) / 2 ≤ Nat.card { index : Fin active // Clean (fun (index : Fin active) (direction : Projectivization K V) => puncturedLine (state.2 index) direction) (phaseOccupied state) candidate index }

The half-clean predicate provides the rounded-up acceptance count.

Number accepted by the phase whose pending batch has 2^depth requests.

Equations
Instances For

    Number remaining after the fixed clean prefix is accepted.

    Equations
    Instances For

      Every nonempty power-of-two phase accepts at least one request.

      The accepted prefix fits in the current request array.

      Accepted and pending counts partition the batch exactly.

      @[simp]

      The singleton phase accepts its only request.

      @[simp]

      The singleton phase leaves no pending requests.

      @[simp]

      A larger phase accepts exactly the next smaller power of two.

      @[simp]

      A larger phase leaves exactly the next smaller power of two.