Walks on rotation maps #
A walk of length t in a D-regular multigraph G on V is a start vertex together with t
labels, p : V × (Fin t → D), and takes the edges labelled p.2 0, …, p.2 (t - 1) in turn.
There are |V| |D| ^ t of them, and they are the darts of the power G.pow t. Walks are the
combinatorial side of the powering step of Dinur's proof of the PCP theorem
Dinur, Sections 3.2 and 5
Arora and Barak, Chapter 22, whose analysis counts the steps of a random walk that
cross a given set of edges; this file provides the facts about walks that analysis rests on.
The trajectory G.walkAt p i is the vertex reached after i steps (constant after the last step)
and G.walkDart p i is the edge taken at step i, as a dart. A walk ends at
(G.pow t).neighbor p.1 p.2 (walkAt_length), so averaging over the labels from a fixed start is
applying the walk operator G.walk ^ t (expect_walkAt_length, through walk_pow), and the
rotation map of G.pow t reverses walks: it reverses the trajectory (walkAt_rot_pow) and the
darts, each seen from its other end (walkDart_rot_pow), and it reverses the steps after the
n-th into the first t - n steps of the reverse (rot_pow_walkDrop).
Splitting a walk at its i-th step into the dart q taken there, the reverse of the first i
steps, which leads back from q to the start, and the steps after it, which lead on from the far
end of q, is a bijection splitWalk i onto (V × D) × (Fin i → D) × (Fin (t - (i + 1)) → D).
So the three pieces of a uniformly random walk are independent and uniform (expect_splitWalk),
and walks crossing a dart with conditions on the two pieces are counted by independent factors
(card_filter_splitWalk). In particular each step of a random walk is a uniformly random dart
(expect_walkDart): every dart is the i-th dart of |D| ^ (t - 1) walks of length t
(sum_walkDart, card_filter_walkDart_eq). This is the fact behind the first-moment estimate of
the powering step.
For steps i < j, the correlation of a function of the i-th dart with a function of the j-th
dart is a correlation along j - (i + 1) steps of the random walk (expect_walkDart_mul_walkDart),
so the mixing lemma bounds its distance to the product of the averages by λ(G) ^ (j - (i + 1))
times the standard deviations (sq_expect_walkDart_mul_walkDart_sub_le). Summed over the pairs of
steps, this is the second-moment estimate of the powering step.
Main definitions #
Cslib.RotationMap.walkAt: the vertex of a walk afteristeps.Cslib.RotationMap.walkDart: the dart of a walk at stepi.Cslib.RotationMap.walkDrop: the walk after the firstnsteps of a walk.Cslib.RotationMap.splitWalk: splitting a walk at a step into the dart taken there, the reverse of the steps before it and the steps after it.
Main results #
Cslib.RotationMap.walkAt_length,Cslib.RotationMap.expect_walkAt_length: a walk ends at its neighbor inG.pow t, so averaging over the walks from a vertex appliesG.walk ^ t.Cslib.RotationMap.walkAt_rot_pow,Cslib.RotationMap.walkDart_rot_pow,Cslib.RotationMap.rot_pow_walkDrop: the rotation map ofG.pow treverses walks.Cslib.RotationMap.expect_splitWalk,Cslib.RotationMap.card_filter_splitWalk: the pieces of a walk split at a step are independent and uniform.Cslib.RotationMap.expect_walkDart,Cslib.RotationMap.sum_walkDart: each step of a random walk is a uniformly random dart.Cslib.RotationMap.expect_walkDart_mul_walkDart: the correlation of two darts of a random walk is a correlation along the walk operator.Cslib.RotationMap.sq_expect_walkDart_mul_walkDart_sub_le,Cslib.RotationMap.abs_expect_walkDart_mul_walkDart_sub_le: two darts of a random walk are almost independent.
References #
The vertex reached after i steps of the walk p = (v, k) of length t, which starts at v
and takes the edges labelled k 0, …, k (t - 1) in turn. After its last step the walk stays at its
end: G.walkAt p i = G.walkAt p t for t ≤ i (walkAt_of_le).
Instances For
A walk starts at its first vertex.
The i-th dart of the walk p: the edge taken at step i, seen from the vertex where it is
taken.
Instances For
A walk whose first label is a takes the edge a and then walks along the remaining labels.
The (i + 1)-th dart of a walk whose first label is a is the i-th dart of the walk along
the remaining labels from the neighbor along a.
The darts of the walk along the first n labels of a walk are its first n darts.
The n-th vertex of a walk is the neighbor along its first n labels in the power G ^ n.
Reversing a walk in G ^ t reverses its darts: the i-th dart of the reverse of p is the
(t - 1 - i)-th dart of p seen from its other end.
The reverse of the walk after the n-th step of p is the walk along the first t - n labels
of the reverse of p.
Averaged over its labels, a walk of length t from v ends where the random walk is after t
steps: the average of f over its ends is (G.walk ^ t) f v.
The correlation of f at the start with g at the end of a uniformly random walk of length t
is 𝔼 v, f v * (G.walk ^ t) g v, the quantity estimated by the mixing lemma
sq_expect_mul_walk_pow_sub_le.
Splitting a walk at its i-th step. A walk p of length t is determined by its i-th
dart q, the labels r of the reverse of its first i steps, which lead back from the start of
q to the start of p, and its labels s after step i, which lead on from the end of q; and
any such data come from a walk. So (q, r, s) ranges over all of
(V × D) × (Fin i → D) × (Fin (t - (i + 1)) → D) as p ranges over the walks: q is the crossed
dart, (q.1, r) the walk back to the start (fst_rot_pow_take, walkAt_rot_pow_take) and
((G.rot q).1, s) the walk on to the end (fst_rot_walkDart, walkAt_walkDrop). The inverse
glues a walk from these pieces.
Instances For
The reverse of the first n steps of a walk retraces them.
The pieces of a uniformly random walk are independent and uniform. Split at its i-th
step, a uniformly random walk of length t has a uniformly random i-th dart, and independently
of it uniformly random labels before and after it.
The crossing count. Counted by their i-th dart q, the walks of length t for which the
reverse of the first i steps satisfies P q and the steps after the i-th satisfy Q q are
counted by independent factors.
Each step of a walk is a uniform dart (counting form): summing a function of the i-th dart
over the walks of length t sums it |D| ^ (t - 1) times over the darts, for every dart is the
i-th dart of |D| ^ (t - 1) walks.
Each step of a uniformly random walk is a uniformly random dart.
The walks of length t whose i-th dart lies in S number |D| ^ (t - 1) * |S|.
Every dart is the i-th dart of |D| ^ (t - 1) walks of length t.
Two darts of a random walk. For steps i < j of a uniformly random walk, the correlation of
f at the i-th dart with g at the j-th dart is the correlation, along j - (i + 1) steps of
the random walk, of the average 𝔼 a, f (G.rot (v, a)) of f over the darts into a vertex v with
the average 𝔼 a, g (w, a) of g over the darts out of a vertex w.
Two darts of a random walk are almost independent. For steps i < j of a uniformly random
walk, the correlation of f at the i-th dart with g at the j-th dart differs from the product
of their averages over the darts by at most λ(G) ^ (j - (i + 1)) times their standard deviations.
Squared: the square of the difference is at most λ(G) ^ (2 (j - (i + 1))) times the product of the
variances 𝔼 f² - (𝔼 f)² and 𝔼 g² - (𝔼 g)².
Two darts of a random walk are almost independent: for steps i < j of a uniformly random
walk, the correlation of f at the i-th dart with f at the j-th dart differs from the square
of its average over the darts by at most λ(G) ^ (j - (i + 1)) times its variance.