Batched fixed powers with one shared dictionary #
A circuit with r * n inputs and outputs applies f^[T] to each of r independent n-bit
states (blockMap). All members share one checkpoint table: the orbit prefixes of all members
are looked up in one batched dictionary, and each member finishes on its own. For r ≤ 2 ^ n and
0 < L ≤ 2 ^ n this costs at most 100000 * batchBudget n s (2 ^ n) r L gates
(batched_fixed_power), where
batchBudget n s M r L = r * L * s + (n + 1) ^ 3 * (r * L + M / L + 1);
the storage term M / L is paid once rather than r times. Balancing L gives
300000 * (r * A + √((n + 1) ^ 3 * 2 ^ n * r * A)) with A = s + (n + 1) ^ 3
(batched_fixed_power_optimized).
With a separate m-bit time for each member, binary powering with the batched powers costs
m * (100000 * batchBudget n s (2 ^ n) r L + 4 * r * n) (batched_variable_time), and
m * (300000 * optimizedBatchBudget n s (2 ^ n) r + 4 * r * n) balanced
(batched_variable_time_optimized). These input-time circuits specialize the shared
binary-powering rule in Iteration.InputTime to the batched fixed-power circuits proved here.
The circuits are native De Morgan circuits: every NOT, AND and OR gate and every constant is charged, while wiring and fanout are free. The checkpoints are chosen nonconstructively, so the circuits exist for each parameter choice; nothing here bounds the time to construct them.
Main definitions #
Cslib.Circuits.Boolean.Iteration.batchBudget: the batched size tradeoff.Cslib.Circuits.Boolean.Iteration.optimizedBatchBudget: its balanced square-root form.
Main results #
Cslib.Circuits.Boolean.Iteration.synthesis_batched_power: the shared-dictionary construction.Cslib.Circuits.Boolean.Iteration.batched_fixed_power,Cslib.Circuits.Boolean.Iteration.batched_fixed_power_optimized: batched fixed powers.Cslib.Circuits.Boolean.Iteration.synthesis_batched_binary_powering: binary powering of batches, with one time per member.Cslib.Circuits.Boolean.Iteration.batched_variable_time,Cslib.Circuits.Boolean.Iteration.batched_variable_time_optimized: batched input times.
References #
- Adapted from lean/Proofs/{BatchPowers,BatchVariableTime}.lean in S. Schlesinger, Square-root circuit bounds for iterated functions.
The batched tradeoff r * L * s + (n + 1) ^ 3 * (r * L + M / L + 1) for r trajectories of
n-bit states, a transition circuit of size s, M relevant states and parameter L.
Instances For
A single trajectory has the fixed-power tradeoff.
A synthesis of every member's output block gives a circuit for the block map.
Batched fixed powers #
Shared-dictionary powers. Let cp be injective checkpoints such that every orbit repeats
among its first L states or reaches a checkpoint in fewer than 2 L steps, and let
2 L ≤ T. Then f^[T] of r available states costs one orbit prefix of 2 L steps per member,
one shared lookup of all prefix states against the M checkpoints, and one finishing step and
one checkpoint-free fixed-power circuit per member.
Batched fixed powers. For r ≤ 2 ^ n and 0 < L ≤ 2 ^ n, some circuit of size at most
100000 * batchBudget n c.size (2 ^ n) r L applies T steps of c to each of r independent
states.
The balanced batched budget r * A + √((n + 1) ^ 3 * M * r * A) with A = s + (n + 1) ^ 3.
Instances For
A single trajectory has the balanced fixed-power budget.
Batched input times #
Batched input times. For r ≤ 2 ^ n and 0 < L ≤ 2 ^ n, some circuit of size at most
m * (100000 * batchBudget n c.size (2 ^ n) r L + 4 * (r * n)) iterates c on each of r
independent states for that member's own number of steps, given by m input bits.