Amplifying, logarithmically many times #
AlgRound computes one round. Dinur's theorem runs logarithmically many, so
this module iterates that function and bounds the size of what it writes: each
round multiplies the edge count by a constant, so after n rounds the graph is
edgeFactor ^ n times as large, and the ruler keeps n logarithmic.
Main definitions #
Complexity.gapFn— the amplified graph, as a string
Main results #
Complexity.numEdges_iterStep— a round's edge count, exactlyComplexity.length_encGraph_iterStep_le— the size of what is writtenComplexity.gapFn_eq— it writes the amplifier's iterate
The sizes of an iterate #
The size of what a round writes.
The size of what a round writes, in terms of a bound on the growth factor, so that one bound serves every round of the iteration.
The amplifier's round is the round the algorithm computes.
So the amplifier's iterate is the algorithm's.
The size of what a round writes, from numeric bounds alone: a caller supplies bounds on the graph it starts from and on the growth factor.
The iteration #
The amplified graph, as a string: as many rounds as the ruler is long.
Equations
- Complexity.gapFn F hd init ruler z = (Complexity.roundFn F hd)^[(ruler z).length] (init z)
Instances For
What it writes: the amplifier's iterate on whatever graph the start writes.
And writing it is polynomial-time.