Scheduler states #
The scheduler keeps 2 ^ D records in fixed positions. A record holds the D-bit label of its
original request, the bits of that request's target point, and s listed points of a line. The
first a positions hold accepted requests. Good targets a x says that the records are a
permutation of the labelled requests, that every accepted record lists the punctured line through
its target with some nonzero direction, and that accepted lines are pairwise disjoint.
The initial state lists every request in its original position, with no accepted line. When all
records are accepted, sorting by label restores the original order: each label has a fixed rank
(rank), so a final wiring reads every request's line from its sorted position (finalOutput).
Main definitions #
Cslib.Circuits.Boolean.MassProduction.Scheduler.width: the record width.Cslib.Circuits.Boolean.MassProduction.Scheduler.Good: the scheduler invariant.Cslib.Circuits.Boolean.MassProduction.Scheduler.initialSubstitution: the initial records.Cslib.Circuits.Boolean.MassProduction.Scheduler.finalOutput: lines in original order.
Main results #
Cslib.Circuits.Boolean.MassProduction.Scheduler.good_initial: the initial state is good.Cslib.Circuits.Boolean.MassProduction.Scheduler.finalOutput_eq_lineBits: a fully accepted good state yields a valid schedule.
References #
- Adapted from MassProduction/Nonuniform/BufferModel.lean, MassProduction/Nonuniform/BufferEndpoints.lean and MassProduction/Nonuniform/RecordArray.lean in S. Schlesinger, Boolean circuit mass production formalization, using the sorting network of K. E. Batcher, Sorting Networks and Their Applications.
Points #
Records #
A record: D label bits, a target point of L bits, and s listed points.
Instances For
Distinct requests have distinct labels.
The state invariant after a acceptances: the records are a permutation π of the labelled
requests, every accepted record lists the punctured line through its target with a nonzero
direction, and accepted lines are pairwise disjoint.
Instances For
The initial state #
The initial state is good with no accepted requests.
Restoring the original order #
Sorting by distinct labels places the record of request i at its rank.
When every record is accepted, the final output lists, for every request in its original position, a punctured line through its target; the lines have nonzero directions and are pairwise disjoint.