Documentation

Complexity.Computability.Circuit.Rational.PaddedRank

Rank of the padded test matrices #

The reverse-Taylor test at a point is realised by a polynomial matrix full M a in a fresh indeterminate t; zeroing its columns of index at least N gives padded M N a. Through the embedding t ↦ X into Laurent series, the rectangular kernel theorem yields a lower bound q * N on the rank of the block matrix formed from coefficient matrices and padded tests. The padded entries are polynomials of degree at most M - 1 and commute with coefficient maps.

Main definitions #

Main results #

References #

The inverse of taylorCoordinates M a is taylorCoordinates M (-a).

(reverseCoordinates M).symm reverses the index j to j.rev.

The (i, j) matrix entry of (reverseTaylorCoordinates M a).symm is the degree-i coefficient of (X + C (-a)) ^ j.rev.

noncomputable def Cslib.Circuits.Rational.TestPolynomial.full {K : Type u_1} [Field K] (M : ℕ) (a : K) :
Matrix (Fin M) (Fin M) (Polynomial K)

The reverse-Taylor test matrix over the univariate polynomial ring in t. Summation over all M Taylor coordinates appends only zero terms.

Instances For
    noncomputable def Cslib.Circuits.Rational.TestPolynomial.padded {K : Type u_1} [Field K] (M N : ℕ) (a : K) :
    Matrix (Fin M) (Fin M) (Polynomial K)

    The polynomial test matrix with columns above the threshold set to zero.

    Instances For

      The original t indeterminate embeds into the fresh Laurent indeterminate.

      Instances For

        Mapping embed over full M a gives the matrix of testMap M a.

        theorem Cslib.Circuits.Rational.TestPolynomial.padded_natDegree_le {K : Type u_1} [Field K] (M N : ℕ) (a : K) (i j : Fin M) :
        (padded M N a i j).natDegree ≤ M - 1

        Every entry of padded M N a has polynomial degree at most M - 1.

        noncomputable def Cslib.Circuits.Rational.PaddedRank.raw {K : Type u_1} [Field K] {w q M : ℕ} (A : Fin w → Matrix (Fin q) (Fin q) (LaurentReduction.F K)) (R : Fin w → Matrix (Fin M) (Fin M) (LaurentReduction.F K)) :

        The full block matrix formed from the coefficient and test matrices.

        Instances For
          theorem Cslib.Circuits.Rational.PaddedRank.raw_apply {K : Type u_1} [Field K] {w q M : ℕ} (A : Fin w → Matrix (Fin q) (Fin q) (LaurentReduction.F K)) (R : Fin w → Matrix (Fin M) (Fin M) (LaurentReduction.F K)) (f : Fin q × Fin M → LaurentReduction.F K) (α : Fin q) (j : Fin M) :
          (raw A R).mulVec f (α, j) = ∑ i : Fin w, ∑ γ : Fin q, A i α γ * (R i).mulVec (fun (b : Fin M) => f (γ, b)) j

          Matrix-vector multiplication by raw A R expands blockwise over i and γ.

          Pad vectors in the truncated column space with zeros.

          Instances For
            theorem Cslib.Circuits.Rational.PaddedRank.extend_injective {K : Type u_1} [Field K] (q M N : ℕ) (hNM : N ≤ M) :

            Zero-padding from N to M columns is injective when N ≤ M.

            theorem Cslib.Circuits.Rational.PaddedRank.rank_ge {K : Type u_1} [Field K] [CharZero K] (w B M N q e : ℕ) (hw : 1 ≤ w) (hN : 1 ≤ N) (hMN : M = N + 2 * w ^ 3 * B) (hq : q ≤ B) (he : 0 < e) (points : Fin w → K) (hp : Function.Injective points) (A : Fin w → Matrix (Fin q) (Fin q) (LaurentReduction.F K)) (X : Fin w → Matrix (Fin e) (Fin e) (LaurentReduction.F K)) (hX : Function.Injective ⇑(Rectangular.blockEval A X)) :
            q * N ≤ (raw A fun (i : Fin w) => TestPolynomial.embed.mapMatrix (TestPolynomial.padded M N (points i))).rank

            The padded test matrices satisfy a rectangular rank lower bound, using an invertible witness and the expansion theorem.

            theorem Cslib.Circuits.Rational.PaddedRank.numeric_gap (w B M N q : ℕ) (hq : 1 ≤ q) (hqB : q ≤ B) (hMN : M = N + 2 * w ^ 3 * B) (hM : B * (2 * w ^ 3 * B) < M) :
            (q - 1) * M < q * N

            When 1 ≤ q ≤ B, M = N + 2 * w ^ 3 * B, and B * (2 * w ^ 3 * B) < M, the rank threshold satisfies (q - 1) * M < q * N.

            theorem Cslib.Circuits.Rational.TestPolynomial.eval₂_padded {K : Type u_1} {E : Type u_2} [Field K] [Field E] (φ : K →+* E) (M N : ℕ) (a : K) (i j : Fin M) :
            Polynomial.eval₂ (HahnSeries.C.comp φ) ((HahnSeries.single 1) 1) (padded M N a i j) = embed (padded M N (φ a) i j)

            Evaluating padded M N a i j along HahnSeries.C.comp φ at HahnSeries.single 1 1 equals embed (padded M N (φ a) i j).