Documentation

Complexitylib.RationalHitting.Internal.PaddedRank

Rational hitting lists: padded rank #

Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a. Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/RationalHitting/PaddedRank.lean

Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.

noncomputable def Complexity.RationalHitting.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.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    noncomputable def Complexity.RationalHitting.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.

    Equations
    Instances For

      The original t indeterminate embeds into the fresh Laurent indeterminate.

      Equations
      Instances For
        theorem Complexity.RationalHitting.TestPolynomial.full_natDegree_le {K : Type u_1} [Field K] (M : ℕ) (a : K) (i j : Fin M) :
        (full M a i j).natDegree ≤ M - 1
        theorem Complexity.RationalHitting.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
        noncomputable def Complexity.RationalHitting.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.

        Equations
        Instances For
          theorem Complexity.RationalHitting.PaddedRank.raw_apply {K : Type v_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

          Pad vectors in the truncated column space with zeros.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem Complexity.RationalHitting.PaddedRank.extend_low {K : Type v_1} [Field K] (q M N : ℕ) (f : Fin q × Fin N → LaurentReduction.F K) (α : Fin q) (j : Fin M) :
            N ≤ ↑j → (extend q M N) f (α, j) = 0
            theorem Complexity.RationalHitting.PaddedRank.padded_mulVec_low {K : Type v_1} [Field K] (M N : ℕ) (a : K) (f : Fin M → LaurentReduction.F K) (hf : ∀ (j : Fin M), N ≤ ↑j → f j = 0) :
            theorem Complexity.RationalHitting.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 Complexity.RationalHitting.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
            theorem Complexity.RationalHitting.TestPolynomial.map_taylor_coeff {K : Type u_1} {E : Type u_2} [Field K] [Field E] (φ : K →+* E) (a : K) (j r : ℕ) :
            theorem Complexity.RationalHitting.TestPolynomial.full_map {K : Type u_1} {E : Type u_2} [Field K] [Field E] (φ : K →+* E) (M : ℕ) (a : K) (i j : Fin M) :
            Polynomial.map φ (full M a i j) = full M (φ a) i j
            theorem Complexity.RationalHitting.TestPolynomial.padded_map {K : Type u_1} {E : Type u_2} [Field K] [Field E] (φ : K →+* E) (M N : ℕ) (a : K) (i j : Fin M) :
            Polynomial.map φ (padded M N a i j) = padded M N (φ a) i j
            theorem Complexity.RationalHitting.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)