Documentation

Complexitylib.Circuits.Correlation.Internal.Bipartite

Bisection cut ranks of bilinear forms #

The bilinear form xᵀ R y on inputs of length n is the quadratic form of the n × n matrix with R in the block whose rows are the left half and whose columns are the right half (Correlation.bipartiteMatrix). Cut the coordinates into U and Uᶜ. The block of the polar matrix with rows U and columns Uᶜ contains, on disjoint sets of columns, the block of R with rows x ∩ U and columns y \ U, and the transpose of the block with rows x \ U and columns y ∩ U. If every square block of R with k rows has rank at least k - t, then for |U| = ⌊n/2⌋ the two blocks have total rank at least ⌊n/2⌋ - 1 - 2t.

theorem Complexity.Correlation.bipartiteMatrix_apply {n : ℕ} (R : Matrix (Fin (n / 2)) (Fin (n / 2)) (ZMod 2)) (a b : Fin (n / 2)) :
bipartiteMatrix n R (leftIdx n a) (rightIdx n b) = R a b
theorem Complexity.Correlation.bipartiteMatrix_eq_zero {n : ℕ} (R : Matrix (Fin (n / 2)) (Fin (n / 2)) (ZMod 2)) {i j : Fin n} (h : i ∉ Set.range (leftIdx n) ∨ j ∉ Set.range (rightIdx n)) :
bipartiteMatrix n R i j = 0

The bilinear form is the quadratic form of the bipartite matrix.

Two injective relabellings with disjoint ranges pull back at most |V| elements of V.

theorem Complexity.Correlation.SubmatrixRobust.min_le {m : ℕ} {R : Matrix (Fin m) (Fin m) (ZMod 2)} {t : ℕ} (hR : SubmatrixRobust R t) (A B : Set (Fin m)) :

A robust matrix has every block of rank at least its smaller side minus t.

theorem Complexity.Correlation.half_le_cutRank_bipartiteMatrix {n : ℕ} {R : Matrix (Fin (n / 2)) (Fin (n / 2)) (ZMod 2)} {t : ℕ} (hR : SubmatrixRobust R t) {U : Set (Fin n)} (hU : U.ncard = n / 2) :
n / 2 ≤ cutRank (bipartiteMatrix n R) U + (2 * t + 1)

Bisection cut rank of a robust bilinear form.