Rectangles, rectangle-free sets and bias #
An input is a function x : ι → U from a type of coordinates to an alphabet. A set of
coordinates X cuts an input into two parts: its restriction to X and its restriction to the
complement Xᶜ. The rectangle with sides A and B is the set of inputs whose part on X
lies in A and whose part on Xᶜ lies in B: a combinatorial rectangle in the sense of
communication complexity, for the cut of the coordinates into X and Xᶜ.
A set of inputs S is K-rectangle-free when every rectangle inside S, for every cut of the
coordinates, has a side with fewer than K elements. This is the property of a hard set that the
worst-case frontier lower bounds use.
Thick or small (exists_thick_or_ncard_lt). A set that ignores coordinates carrying at least
K assignments is a rectangle with both sides of size at least K, or it has fewer than
|U| K ^ 2 elements. Two consequences:
- the support lemma (
RectangleFree.pow_ncard_compl_lt): a large rectangle-free set depends on all but fewer thanlog_|U| Kcoordinates; - bias on sets that ignore many coordinates
(
RectangleBias.abs_signedCount_le_of_dependsOn).
The average-case lower bounds use a quantitative form of rectangle-freeness: S has bias at
most b on large rectangles (RectangleBias) when on every rectangle with both sides of size at
least K, the density of S is within b of 1/2. Then the inputs of such a rectangle in S
and those outside S differ in number by at most a 2 b fraction (signedCount).
Main definitions #
Cslib.Circuits.Frontier.rectangle X A B: the rectangle with sidesAonXandBonXᶜ.Cslib.Circuits.Frontier.RectangleFree S K: every rectangle insideShas a side with fewer thanKelements.Cslib.Circuits.Frontier.signedCount S R: the inputs ofRinSminus those outsideS.Cslib.Circuits.Frontier.RectangleBias S K b: on every rectangle with both sides of size at leastK, the density ofSis withinbof1/2.
Main results #
Cslib.Circuits.Frontier.ncard_rectangle: a rectangle has|A| |B|inputs.Cslib.Circuits.Frontier.signedCount_eq_sum: the signed count as a sum over the counted set.Cslib.Circuits.Frontier.exists_thick_or_ncard_lt: thick or small.Cslib.Circuits.Frontier.RectangleFree.pow_ncard_compl_lt: the support lemma.Cslib.Circuits.Frontier.RectangleBias.abs_signedCount_le_of_dependsOn: bias on a set that ignores many coordinates.Cslib.Circuits.Frontier.rectangleBias_one_half: every set has bias at most1/2.
References #
An input is determined by its two parts: cutting along X is injective.
A set that does not depend on the coordinates in D is the rectangle whose side on D is
every assignment and whose side on Dᶜ is the set of its parts there.
Thick or small. Let T depend only on the coordinates in R, and let the other
coordinates carry at least K ≥ 1 assignments. Then T is a rectangle with both sides of size
at least K, or T has fewer than |U| K ^ 2 elements.
Take a smallest set D of ignored coordinates carrying at least K assignments, so that
|U| ^ |D| ≤ |U| (K - 1). Then T is the rectangle whose side on D is everything; if its
other side has fewer than K elements, T has at most |U| ^ |D| (K - 1) of them.
Rectangle-free sets #
A set of inputs S is K-rectangle-free when every rectangle contained in S, for
every cut of the coordinates, has a side with fewer than K elements.
Sides are counted with Set.encard, so that an infinite side is never small. Over finitely many
coordinates and a finite alphabet the sides may be counted with Set.ncard instead
(rectangleFree_iff).
Instances For
Inside a rectangle-free set, one side of every rectangle is a finite set with fewer than K
elements.
The threshold of a rectangle-free set is positive: the empty rectangle has empty sides.
A nonempty K-rectangle-free set has 1 < K: a single input is a rectangle with sides of
one element each, for the cut of the coordinates into all and none.
A subset of a rectangle-free set is rectangle-free.
Raising the threshold keeps a set rectangle-free.
The support lemma. A K-rectangle-free set with at least |U| * K ^ 2 elements depends
on all but fewer than log_|U| K coordinates: if S depends only on the coordinates in R,
then |U| ^ |Rᶜ| < K.
Over finitely many coordinates and a finite alphabet, a set is K-rectangle-free exactly
when every rectangle inside it has a side with fewer than K elements counted with ncard.
Bias #
The signed count of S on R is the sum of ±1 over R: +1 on the inputs in S and -1
on the others.
A set of inputs S has bias at most b on rectangles with both sides of size at least
K when on every such rectangle R, for every cut of the coordinates, the density of S is
within b of 1/2:
| |R ∩ S| - |R| / 2 | ≤ b |R|.
Sizes are counted with Set.ncard, so the notion is meant for finitely many coordinates and a
finite alphabet.
Instances For
Every set has bias at most 1/2: the size of R ∩ S lies between 0 and |R|.
A bias bound for rectangles with sides of size at least K holds for larger sides.
On a rectangle with both sides of size at least K, a set with bias at most b has signed
count at most 2 b times the size of the rectangle.
A bias bound is nonnegative once half of the coordinates carry at least K assignments:
the whole input space is then a rectangle with both sides of size at least K.
Bias on a set that ignores many coordinates. If T depends only on the coordinates in
R and the others carry at least K ≥ 1 assignments, then either T is a rectangle with both
sides of size at least K, on which S has bias at most b, or T is small. Either way the
signed count of S on T is at most 2 b |T| + |U| K ^ 2.