Correctness of the effective binary basis construction #
theorem
MIPRE.LowDegree.BinaryLinear.vector_eq_zero_of_firstOne_ge
{n : ℕ}
(v : Fin n → ZMod 2)
(h : ¬firstOne (vectorBits v) < n)
:
theorem
MIPRE.LowDegree.BinaryLinear.firstOne_vectorBits_one
{n : ℕ}
(v : Fin n → ZMod 2)
(h : firstOne (vectorBits v) < n)
:
theorem
MIPRE.LowDegree.BinaryLinear.IsPivotBasis.typedInsert
{n t : ℕ}
{b : List (Pivot n t)}
(hb : IsPivotBasis b)
(r : Row n t)
:
Insertion maintains the triangular pivot invariant.
Forward elimination, with its vectors and coefficient certificates retained.
Equations
Instances For
theorem
MIPRE.LowDegree.BinaryLinear.fold_insertRow_pivotBits
{n t : ℕ}
(rows : List (Row n t))
(b : List (Pivot n t))
:
List.foldl insertRow (List.map pivotBits b) (List.map rowBits rows) = List.map pivotBits (List.foldl typedInsert b rows)
The actual ambient program constructs precisely the typed binary basis.
theorem
MIPRE.LowDegree.BinaryLinear.fold_typedInsert_isPivotBasis
{n t : ℕ}
(rows : List (Row n t))
(b : List (Pivot n t))
(hb : IsPivotBasis b)
:
IsPivotBasis (List.foldl typedInsert b rows)
theorem
MIPRE.LowDegree.BinaryLinear.typedBasis_isPivotBasis
{n t : ℕ}
(rows : List (Row n t))
:
IsPivotBasis (typedBasis rows)
theorem
MIPRE.LowDegree.BinaryLinear.typedBasis_linearIndependent
{n t : ℕ}
(rows : List (Row n t))
:
LinearIndependent (ZMod 2) (pivotVectors (typedBasis rows))
The constructed independent vectors span the original family.