Triangular pivot bases and certified binary reduction #
In insertion order, each row has pivot one and every later row vanishes at that pivot. Pivots need not be numerically ordered.
Equations
- MIPRE.LowDegree.BinaryLinear.IsPivotBasis [] = True
- MIPRE.LowDegree.BinaryLinear.IsPivotBasis (p :: b) = (p.2.1 p.1 = 1 ∧ (∀ q ∈ b, q.2.1 p.1 = 0) ∧ MIPRE.LowDegree.BinaryLinear.IsPivotBasis b)
Instances For
theorem
MIPRE.LowDegree.BinaryLinear.typedReduceStep_pivot_zero
{n t : ℕ}
(r : Row n t)
(p : Pivot n t)
(hp : p.2.1 p.1 = 1)
:
theorem
MIPRE.LowDegree.BinaryLinear.typedReduce_pivots_zero
{n t : ℕ}
(b : List (Pivot n t))
(hb : IsPivotBasis b)
(r : Row n t)
(p : Pivot n t)
:
p ∈ b → (typedReduce b r).1 p.1 = 0
Reducing against a triangular basis zeros all of its pivot coordinates.
theorem
MIPRE.LowDegree.BinaryLinear.IsPivotBasis.append_reduced
{n t : ℕ}
{b : List (Pivot n t)}
(hb : IsPivotBasis b)
(r : Row n t)
(j : Fin n)
(hj : (typedReduce b r).1 j = 1)
:
IsPivotBasis (b ++ [(j, typedReduce b r)])
A reduced nonzero row can be appended at any of its nonzero coordinates.
theorem
MIPRE.LowDegree.BinaryLinear.pivotVectors_cons
{n t : ℕ}
(p : Pivot n t)
(b : List (Pivot n t))
:
theorem
MIPRE.LowDegree.BinaryLinear.IsPivotBasis.linearIndependent
{n t : ℕ}
{b : List (Pivot n t)}
(hb : IsPivotBasis b)
:
LinearIndependent (ZMod 2) (pivotVectors b)
Triangular pivots certify linear independence of the stored vectors.
theorem
MIPRE.LowDegree.BinaryLinear.IsPivotBasis.length_le
{n t : ℕ}
{b : List (Pivot n t)}
(hb : IsPivotBasis b)
:
A pivot basis contains at most the ambient dimension many rows.