Sweeps and the frontier counting lemma #
A sweep of a set of inputs S ⊆ U^ι reveals the coordinates of an input a few at a time:
∅ = X 0, X 1, ..., X T = ι. At each time t an input has a message μ t x, which may
depend on the whole input. The defining property is that messages permit splicing: if two inputs
of S send the same message at time t, then the revealed part of one may be spliced onto the
unrevealed part of the other without leaving S. The last message, sent once everything is
revealed, is the same for all inputs of S.
Between times t and t + 1 an input x takes the transition
(μ t x, μ (t + 1) x, x|_{X (t + 1) \ X t}): the message before the step, the message after it,
and the coordinates revealed during it.
The frontier counting lemma (Sweep.ncard_le). If S is K-rectangle-free and has at
least K elements, then |S| ≤ (K - 1) ^ 2 · ∑ₜ #{transitions taken at step t}.
The proof charges each input x to the first time t + 1 at which the inputs sharing its
message (its peers) have at least K distinct revealed parts. The rectangular hull of the
peers lies inside S, so they have fewer than K distinct unrevealed parts. At time t the
peers of x still had fewer than K distinct revealed parts. An input charged to a step is
determined by its transition, its part revealed by time t and its part unrevealed at time
t + 1; hence at most (K - 1) ^ 2 inputs share a charged step and a transition.
Nothing here mentions graphs or circuits: a sweep is an abstract family of splicing messages,
and its charging argument is shared by everything swept along a layout. The chosen accepting
paths of a read-once branching program form a sweep of its accepted set, which gives the
rectangle bound for such programs (Cslib.Circuits.Frontier.ReadOnceNBP.ncard_accepted_le), and
through them the counting lemma for constraint networks. Constraint
networks swept along a layout with extra messages, such as a ledger, produce sweeps whose
messages are the extra messages and the values on the edges of the frontier
(Cslib.Circuits.Frontier.Network.frontierSweep).
Main definitions #
Cslib.Circuits.Frontier.Sweep S M: a sweep ofSwith messages inM.Cslib.Circuits.Frontier.Sweep.transition: the transition taken by an input at a step.Cslib.Circuits.Frontier.Sweep.transitionCount: the number of transitions taken by inputs ofS, summed over the steps.
Main results #
Cslib.Circuits.Frontier.Sweep.ncard_le_mul_transitionCount: the charging argument, for any two thresholds that bound the two sides of every message class.Cslib.Circuits.Frontier.Sweep.ncard_le: the frontier counting lemma.
A sweep of a set of inputs S: coordinates revealed over time, starting from none and
ending with all, and a message at each time such that inputs of S sending the same message
can exchange their unrevealed parts.
- length : ℕ
The number of steps.
The coordinates revealed by time
t.Nothing is revealed at the start.
Everything is revealed at the end.
- message : ℕ → (ι → U) → M
The message at time
t, possibly depending on the whole input. - message_length (x : ι → U) : x ∈ S → ∀ y ∈ S, self.message self.length x = self.message self.length y
The final message is the same for all inputs of
S. - splice (t : ℕ) (x : ι → U) : x ∈ S → ∀ y ∈ S, self.message t x = self.message t y → ∀ (z : ι → U), Set.EqOn z x (self.revealed t) → Set.EqOn z y (self.revealed t)ᶜ → z ∈ S
Messages permit splicing: if two inputs of
Ssend the same message at timet, the revealed part of one and the unrevealed part of the other form an input ofS.
Instances For
Counting transitions by what determines them: if on S the transition at step t is a
function of h and of a quantity g with values in a finite type D, then there are at most
#(values of h on S) * |D| transitions at step t.
The charging argument #
The rectangular hull of the peers of x lies inside S, so in a rectangle-free set one of
its sides is small.
The charging argument. If at every time up to the end each input of S has fewer than
KL distinct revealed parts or fewer than KR distinct unrevealed parts among its peers, then
|S| ≤ (KL - 1) (KR - 1) · #transitions, provided 1 < KL ≤ |S|.
The frontier counting lemma. A K-rectangle-free set with at least K elements has at
most (K - 1) ^ 2 elements per transition of any of its sweeps.