Documentation

Complexitylib.RationalHitting.Internal.Determinant

Rational hitting lists: determinant #

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

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

@[simp]
theorem Complexity.RationalHitting.DeterminantAlgorithm.vector_get_ofFn {α : Type u_1} {n : ℕ} (f : Fin n → α) (i : Fin n) :
(Vector.ofFn f).get i = f i
@[reducible, inline]

A dense square integer matrix stored as a vector of row vectors.

Equations
Instances For

    Read a dense integer table as a matrix.

    Equations
    Instances For

      Materialize every entry of an integer matrix into a dense table.

      Equations
      Instances For

        One division-free Bird determinant stage on stored tables.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Compute the determinant from the final Bird stage, including dimension zero.

          Equations
          Instances For
            theorem Complexity.RationalHitting.DeterminantAlgorithm.sumFrom_fin_tail {n : ℕ} (i : Fin n) (f : ℕ → ℤ) :
            BirdDet.sumFrom n (↑i + 1) f = ∑ k > i, f ↑k

            A genuine executable determinant, not Matrix.det's permutation sum.

            theorem Complexity.RationalHitting.DeterminantAlgorithm.step_bound {n : ℕ} (A F : Matrix (Fin n) (Fin n) ℤ) (B C : ℕ) (hA : ∀ (i j : Fin n), |A i j| ≤ ↑B) (hF : ∀ (i j : Fin n), |F i j| ≤ ↑C) (i j : Fin n) :
            |BirdDet.Spec.stepEntry A F i j| ≤ ↑(2 * n * B * C)
            theorem Complexity.RationalHitting.DeterminantAlgorithm.stages_bound {n : ℕ} (A : Table n) (B : ℕ) (hA : ∀ (i j : Fin n), |denote A i j| ≤ ↑B) (k : ℕ) (i j : Fin n) :
            |denote (stages A k) i j| ≤ ↑(B * (2 * n * B) ^ k)

            Every stored table entry has only linearly many multiplicative growth stages.

            theorem Complexity.RationalHitting.DeterminantAlgorithm.stages_power_bound {n : ℕ} (A : Table n) (b : ℕ) (hA : ∀ (i j : Fin n), |denote A i j| ≤ 2 ^ b) (k : ℕ) (i j : Fin n) :
            |denote (stages A k) i j| ≤ 2 ^ (b + k * (1 + n + b))

            Binary exponent bound for all stored intermediate tables, including singular inputs.