Reconstructing the fixed power from a detected pair #
A detected pair of records determines f^[T] x (reconstruct_spec). If the prefix state at time
d is a checkpoint, the checkpoint's payload is f^[T - K] of it, and K - d further steps of
the payload give f^[T] x; the circuit computes all of the payload's first K steps and selects
one (hitValue). If the prefix repeats between times i < j, the state at the time in [i, j)
congruent to T is selected from the prefix (repeatedValue). All branches are total, also on
pairs that a detector never produces.
Main definitions #
Cslib.Circuits.Boolean.Iteration.hitValue: the state after(BitVec.ofNat w K - index).toNatsteps from a checkpoint payload (using the selector's out-of-range fallback aboveK).Cslib.Circuits.Boolean.Iteration.repeatedValue: the prefix state at the time in[lo, hi)congruent toT.Cslib.Circuits.Boolean.Iteration.reconstruct: the state determined by a pair of records.Cslib.Circuits.Boolean.Iteration.prefixWires: the wire functions of the prefix states up to timeK.
Main results #
Cslib.Circuits.Boolean.Iteration.reconstruct_spec: a witness pair determinesf^[T] x.Cslib.Circuits.Boolean.Iteration.synthesis_reconstruct: its gate count.
References #
- Adapted from lean/Proofs/{Decoder,DecoderCircuits,Reconstruction}.lean in S. Schlesinger, Square-root circuit bounds for iterated functions.
A witness pair determines the state at time T.
Gate counts #
The prefix states up to time K.
Instances For
Every bit wire of f^[j] for j ≤ K belongs to prefixWires f K.
Synthesizes hitValue by unfolding K steps of c from payload and selecting the step at
the unsigned value of BitVec.ofNat w K - index x (with the selector's out-of-range fallback).
The reconstruction circuit: two payload orbits, two residue branches and their selection.