Documentation

Complexitylib.Algebraic.LowerBound.Cutwidth.MultiOutput.MatMul.Arithmetic.Accounting

Light–heavy accounting with the Jacobian charges #

Let a split place the terminals a, b, c (MatMul.Tripartite.Defs), with heavy vertices H_I, H_J, H_K of sizes x, y, z. As in MatMul.Tripartite, a terminal with one light and one heavy endpoint is charged to its light endpoint if it is placed and to its heavy endpoint otherwise; A_I, A_J, B_J, B_K count the charged A and B terminals by the part of the endpoint they are charged to, and C is the number of light–heavy C terminals.

Sets of pairs #

theorem Algebraic.Cutwidth.MultiOutput.MatMul.ArithmeticInternal.sum_ite_mem {n : ℕ} (Y : Finset (Fin n)) (α β : ℕ) :
(∑ k : Fin n, if k ∈ Y then α else β) = Y.card * α + (n - Y.card) * β

A sum of a two-valued function over the vertices.

The row charge #

A row pays for its C terminals. At a heavy row the forward term counts the unplaced C i k, at a light row the backward term counts the placed ones; split by the column k.

A column pays for its charged terminals. At a column k, the two Jacobian terms pay for the C terminals charged to k and for the B terminals charged to k, up to the heavy–heavy (at a heavy column) or light–light (at a light column) C terminals at k and an overshoot (n - x - y)⁺ or (x + y - n)⁺.

The light–light and heavy–heavy C terminals, counted at their rows and at their columns.

The row Jacobian charge. The light–heavy C terminals and the B terminals charged to their K endpoints number at most L_I + z (n - x - y)⁺ + (n - z) (x + y - n)⁺, for any set HJ of size y in place of the heavy vertices of J.

Transposing the terminal graph #

The column Jacobian charge. The light–heavy C terminals and the A terminals charged to their I endpoints number at most L_K + x (n - y - z)⁺ + (n - x) (y + z - n)⁺.

The Hessian charge #

Near the threshold #

theorem Algebraic.Cutwidth.MultiOutput.MatMul.ArithmeticInternal.fifteen_mul_sq_le_of_threshold {n x y z : ℕ} (hx : x ≤ n) (hy : y ≤ n) (hz : z ≤ n) (hlo : 3 * n ≤ 2 * (x + y + z)) (hhi : 2 * (x + y + z) ≤ 3 * n + 3) :
15 * n ^ 2 + 8 * (z * (n - (x + y)) + (n - z) * (x + y - n) + (x * (n - (z + y)) + (n - x) * (z + y - n))) ≤ 8 * (x * (n - y) + (n - x) * y + (y * (n - z) + (n - y) * z) + (x * (n - z) + (n - x) * z) + (z * (n - x) + (n - z) * x)) + 6 * n + 9

The arithmetic of the threshold. If 3 n ≤ 2 (x + y + z) ≤ 3 n + 3, the light–heavy terminals, plus the light–heavy C terminals once more, minus the two overshoot corrections, number at least (15 n² - 6 n - 9)/8.

The charging inequality with the Jacobian charges. Near the threshold, 15 n² ≤ 8 (R_J + L_I + L_K) + 6 n + 9.