One step of the walk, inside the polynomial-time algebra #
⚠️ Unreviewed by Bolton
Complexity.IPM.step walks the game tree on an inductive state;
Complexity.IPM.encSst writes that state on a tape. This file writes the step on the tape, out
of the algebra's operations only, and proves the square commutes.
Everything the step needs from the protocol enters through three arguments: a ruler mr whose
length is the message bound, a ruler cr whose length is the coin width, and the leaf test okf,
which reads the encoded stack below a leaf and a coin string.
Main definitions #
Complexity.IPM.ipStep— the encoded stepComplexity.IPM.freshEnc— the frame a node starts from, on the tape
Main results #
Complexity.IPM.ipStep_encSst— one encoded step is one abstract stepComplexity.IPM.ipStepFn_mem_FP— and it is polynomial-time
Reading and writing the encoded state #
The state's four fields, written.
Equations
- Complexity.IPM.mkS d ab r stk = Complexity.pair d (Complexity.pair ab (Complexity.pair r stk))
Instances For
A frame's six fields, written.
Equations
- Complexity.IPM.mkF lvl v a sum best body = Complexity.pair lvl (Complexity.pair v (Complexity.pair a (Complexity.pair sum (Complexity.pair best body))))
Instances For
The done flag.
Equations
Instances For
The answer bit.
Equations
Instances For
The returning value.
Equations
Instances For
The stack.
Equations
Instances For
A frame's level.
Equations
Instances For
A frame's verifier counter.
Equations
Instances For
A frame's prover counter, or its coin counter.
Equations
Instances For
A frame's running sum.
Equations
Instances For
A frame's running maximum.
Equations
Instances For
The body of the encoding of the rounds below a frame.
Equations
Instances For
The frame on top of the stack.
Equations
Instances For
The stack below the top frame.
Equations
Instances For
The encoded step #
The zero of a count's width, from the coin ruler.
Equations
- Complexity.IPM.zcOf cr = Complexity.padTo (cr ++ [false]) []
Instances For
The first coin string, from the coin ruler.
Equations
Instances For
The state the walk starts from, on the tape.
Equations
- Complexity.IPM.ipInit cr rr = Complexity.IPM.mkS [false] [false] [] (Complexity.pair (Complexity.IPM.freshEnc cr [] rr) [])
Instances For
The square commutes #
One encoded step is one abstract step.
And so is any number of steps.