Quadratic forms over GF(2) and their ranks -- definitions #
The hard functions of the correlation bounds are quadratic forms over the field with two
elements. An input x : ι → Bool is read coordinatewise as a vector over ZMod 2
(Correlation.bit), and a square matrix Q defines the Boolean function
x ↦ ∑ i, ∑ j, Q i j x_i x_j (Correlation.quadForm). Only the polar matrix Q + Qᵀ
matters for correlation with circuits: cutting the coordinates into U and Uᶜ, the form
is a function of the U-part, plus a function of the Uᶜ-part, plus the bilinear pairing
of the two parts through the block of Q + Qᵀ with rows U and columns Uᶜ. The rank of
that block is the cut rank of Q at U (Correlation.cutRank).
Ranks of blocks are the dimension over ZMod 2 of the span of their rows
(Correlation.blockRank); this needs no Fintype instance on the index sets. A matrix is
submatrix-robust with deficiency t (Correlation.SubmatrixRobust) when every square
block with k rows has rank at least k - t.
The explicit family is a bilinear form xᵀ R y (Correlation.bilinForm): on inputs of
length n the left half x consists of the first ⌊n/2⌋ coordinates, the right half y
of the next ⌊n/2⌋, and for odd n the last coordinate is ignored.
Main definitions #
Correlation.bit,Correlation.quadForm: a quadratic form as a Boolean function.Correlation.blockRank,Correlation.cutRank: ranks of blocks and cut ranks.Correlation.SubmatrixRobust: every square block is nearly of full rank.Correlation.leftIdx,Correlation.rightIdx,Correlation.bilinForm: the bilinear formxᵀ R yon inputs of lengthn.
The correlation of two Boolean functions on a finite domain:
|Pr[f = g] - Pr[f ≠ g]| = |2 · agreement f g - 1|.
Equations
Instances For
The quadratic form of a square matrix Q over GF(2), as a Boolean function: an input
x is mapped to ∑ i, ∑ j, Q i j x_i x_j.
Equations
- Complexity.Correlation.quadForm Q x = decide (∑ i : ι, ∑ j : ι, Q i j * Complexity.Correlation.bit (x i) * Complexity.Correlation.bit (x j) = 1)
Instances For
The rank over GF(2) of the block of M with rows S and columns T: the dimension of
the span of its rows, each a vector indexed by T.
Equations
- Complexity.Correlation.blockRank M S T = Module.finrank (ZMod 2) ↥(Submodule.span (ZMod 2) (Set.range fun (i : ↑S) (j : ↑T) => M ↑i ↑j))
Instances For
The cut rank of Q at U: the rank of the block of the polar matrix Q + Qᵀ with rows
U and columns Uᶜ. For a symmetric zero-diagonal matrix, the adjacency matrix of a graph,
this is the cut rank of U in the graph.
Equations
Instances For
The deficiency 2 ⌊√m⌋ + 1: submatrix-robust m × m matrices with this deficiency exist
(Correlation.exists_submatrixRobust).
Equations
- Complexity.Correlation.robustDeficiency m = 2 * m.sqrt + 1
Instances For
The coordinate of an input of length n that holds the entry a of its left half.
Equations
- Complexity.Correlation.leftIdx n a = ⟨↑a, ⋯⟩
Instances For
The bilinear form xᵀ R y on inputs of length n, where x is the left half (the first
⌊n/2⌋ coordinates) and y the right half (the next ⌊n/2⌋). For odd n the last
coordinate is ignored.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The n × n matrix with R in the block whose rows are the left half and whose columns are
the right half, and zeros elsewhere.
Equations
- One or more equations did not get rendered due to their size.