Sweeping a circuit with a ledger #
Let a circuit with one output decide a set S, and let its special gates have a ledger in M.
Erase the special gates. A wire is live if it is an input or a gate of positive arity of the
erased program; the others are constants, among them the placeholders. Compile the erased
program with outputs the output of the circuit, accepting the same values, and every live wire,
accepting every value. Every live wire is then a signal of the network. For a guess m ∈ M the
network of the erased program runs the circuit with the placeholders reading their values from
m; its graph and its sites do not depend on m.
The ledger sweep (Frontier.Ledger.sweep) is the sweep along a layout
(Frontier.Network.frontierSweep) whose extra message has two parts: the product m of the
contributions of the true run (its consistent guess) and the product of the contributions of the
signals whose vertices come first (the ledger so far). Two inputs with the same message can be
spliced: the network of the erased program with guess m splices their runs (the separator
lemma), the two parts of the ledger multiply back to m, because the constant wires contribute
the same for every input, and a consistent guess yields the true run
(Frontier.Ledger.mem_of_splice).
Transitions. The extra messages take at most |M|^3 pairs of values at each step
(Frontier.Ledger.ncard_extra_le). Inside a closed set of vertices W, the values of the run
on the edges at W depend only on the guess and the inputs read in W
(Frontier.Ledger.run_eq_of_eqOn_readIn), so the transitions inside W are bounded by the
inputs that W reads, however wide the layout is there.
The network of the erased program #
A wire is live when it is an input or a gate of positive arity of the erased program.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The outputs of the erased program: the output of the circuit, and every live wire.
Equations
- Complexity.Frontier.Ledger.outs c special none = c.outputs 0
- Complexity.Frontier.Ledger.outs c special (some w) = ↑w
Instances For
The accepted values at the outputs of the erased program.
Equations
- Complexity.Frontier.Ledger.accs Acc none = Acc
- Complexity.Frontier.Ledger.accs Acc (some val) = Set.univ
Instances For
The vertices of the network of the erased program.
Equations
- Complexity.Frontier.Ledger.Vtx c special = Complexity.Frontier.Compiler.Vertex (Complexity.Frontier.erase special c.program) (Complexity.Frontier.Ledger.outs c special)
Instances For
The edges of the network of the erased program.
Equations
- Complexity.Frontier.Ledger.Edg c special = Complexity.Frontier.Compiler.Edge (Complexity.Frontier.erase special c.program) (Complexity.Frontier.Ledger.outs c special)
Instances For
The network of the erased program with the guess m, accepting the values in Acc at the
output of the circuit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The network of the erased program with the guess m, accepting every value.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Live wires are signals.
A wire that is not a signal is a constant gate of the erased program, so its value in a run depends only on the guess.
The wires whose vertices lie in P.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The product of the contributions of the wires in Q.
Equations
- L.ledgerOn Q v = ∏ w : Cslib.Circuits.Wire n c.size with w ∈ Q, L.contribution w (v w)
Instances For
Splicing #
The true run satisfies the network of its consistent guess.
Splicing two inputs with the same message. If the runs of two inputs of S have the
same consistent guess, the same ledger on P, and the same values on the cut of P, then the
input that reads like the first at P and like the second elsewhere lies in S.
Locality inside a closed set. For a fixed guess, the values of the run on the edges at a
closed set of vertices W depend only on the inputs read in W.
The sweep #
Every input is read, at its own vertex.
The extra message at time t: the consistent guess and the ledger of the first t
vertices. After the last vertex it is empty.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sweep of a circuit with a ledger, along a layout of the network of its erased program: the frontier sweep whose extra message is the guess and the ledger so far.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The extra messages take at most |M|^3 pairs of values at each step.
Transitions inside a closed set. If the vertex processed at step t lies in a closed
set W that contains both frontiers, a transition is determined by the guess, the two ledgers,
and the inputs read in W.
Transitions by width. A transition is determined by the guess, the two ledgers, the values on the two frontiers, and the input read at the vertex processed.
At the last step the transition is determined by the guess and the two ledgers, since every input is read.