A near-linear nonuniform scheduler circuit #
For 2 ^ D requests, a fixed De Morgan circuit maps the bits of arbitrary target points of
K ^ ℓ, which may repeat, to listed punctured lines through them with nonzero directions and
pairwise disjoint lines, in the original request order (IsScheduler). Universal menus of
direction tuples are a hypothesis: for every 0 < k ≤ 2 ^ D pending requests some menu of r
entries with k * r ≤ 2 ^ D * (2 + 3 ℓ b) + 2 k serves every state with 2 ^ D occupied lines.
The circuit labels every request with its position, then runs D + 1 phases with 2 ^ D,
2 ^ (D - 1), …, 1 pending requests. Each phase tests its menu and accepts the clean half of
the pending requests (Scheduler.next), keeping the state good (Scheduler.good_next). Finally
the records are sorted by label, which returns every request's line to its original position
(Scheduler.finalOutput_eq_lineBits).
The size counts every gate, including constants, and is at most
524288 * 2 ^ D * (s + 1) * (D + ℓ * b + 2) ^ 5 (schedulerBound). The circuit is obtained
existentially from synthesis bounds; its size does not certify the running time of any
constructor.
Main definitions #
Cslib.Circuits.Boolean.MassProduction.schedulerBound: the gate bound.
Main results #
Cslib.Circuits.Boolean.MassProduction.exists_isScheduler: a scheduler circuit withinschedulerBoundgates.
References #
- Adapted from MassProduction/Nonuniform/SchedulerCircuit.lean, MassProduction/Nonuniform/BufferIteration.lean and MassProduction/Nonuniform/BufferIterationCost.lean in S. Schlesinger, Boolean circuit mass production formalization, using the sorting network of K. E. Batcher, Sorting Networks and Their Applications.
Some circuit computes finalOutput exactly, by sorting the records by label and reading every
request's line from the rank of its label, within the displayed number of gates.
The phases with 2 ^ p, 2 ^ (p - 1), …, 1 pending requests accept every remaining request:
some circuit maps every good state with 2 ^ D - 2 ^ p accepted records to a good state with all
records accepted, within p + 1 phase budgets.
The gate bound of the scheduler: 524288 * 2 ^ D * (s + 1) * (D + ℓ * b + 2) ^ 5.
Instances For
A near-linear scheduler circuit. Given universal menus for every number 0 < k ≤ 2 ^ D
of pending requests, of r entries with k * r ≤ 2 ^ D * (2 + 3 ℓ b) + 2 k, some De Morgan
circuit schedules 2 ^ D requests: for all targets, repeated or not, it outputs in the
original order listed punctured lines through them with nonzero directions and pairwise disjoint
lines. Its size, counting every gate including constants, is at most schedulerBound D ℓ b s.