Documentation

MIPRE.Foundations.LowDegree.BinaryBasis

Correctness of the effective binary basis construction #

def MIPRE.LowDegree.BinaryLinear.typedInsert {n t : ℕ} (b : List (Pivot n t)) (r : Row n t) :
List (Pivot n t)

The program's pivot choice, applied to typed coordinate vectors.

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

    Raw row insertion uses exactly the verified typed pivot rule.

    Insertion maintains the triangular pivot invariant.

    def MIPRE.LowDegree.BinaryLinear.typedBasis {n t : ℕ} (rows : List (Row n t)) :
    List (Pivot n t)

    Forward elimination, with its vectors and coefficient certificates retained.

    Equations
    Instances For

      The actual ambient program constructs precisely the typed binary basis.

      theorem MIPRE.LowDegree.BinaryLinear.typedReduceStep_mem_iff {n t : ℕ} (S : Submodule (ZMod 2) (Fin n → ZMod 2)) (r : Row n t) (p : Pivot n t) (hp : p.2.1 ∈ S) :
      (typedReduceStep r p).1 ∈ S ↔ r.1 ∈ S

      Adding a stored vector preserves membership in every subspace containing it.

      theorem MIPRE.LowDegree.BinaryLinear.typedReduce_mem_iff {n t : ℕ} (S : Submodule (ZMod 2) (Fin n → ZMod 2)) (b : List (Pivot n t)) (r : Row n t) (hb : ∀ p ∈ b, p.2.1 ∈ S) :
      (typedReduce b r).1 ∈ S ↔ r.1 ∈ S
      theorem MIPRE.LowDegree.BinaryLinear.typedInsert_mem_iff {n t : ℕ} (S : Submodule (ZMod 2) (Fin n → ZMod 2)) (b : List (Pivot n t)) (r : Row n t) :
      (∀ p ∈ typedInsert b r, p.2.1 ∈ S) ↔ (∀ p ∈ b, p.2.1 ∈ S) ∧ r.1 ∈ S

      Insertion preserves exactly the subspace generated by the old basis and new row.

      theorem MIPRE.LowDegree.BinaryLinear.fold_typedInsert_mem_iff {n t : ℕ} (S : Submodule (ZMod 2) (Fin n → ZMod 2)) (rows : List (Row n t)) (b : List (Pivot n t)) :
      (∀ p ∈ List.foldl typedInsert b rows, p.2.1 ∈ S) ↔ (∀ p ∈ b, p.2.1 ∈ S) ∧ ∀ r ∈ rows, r.1 ∈ S
      theorem MIPRE.LowDegree.BinaryLinear.typedBasis_mem_iff {n t : ℕ} (S : Submodule (ZMod 2) (Fin n → ZMod 2)) (rows : List (Row n t)) :
      (∀ p ∈ typedBasis rows, p.2.1 ∈ S) ↔ ∀ r ∈ rows, r.1 ∈ S

      Output and input generate exactly the same binary subspace.

      Equations
      Instances For
        def MIPRE.LowDegree.BinaryLinear.rowSpan {n t : ℕ} (rows : List (Row n t)) :
        Submodule (ZMod 2) (Fin n → ZMod 2)
        Equations
        Instances For

          The constructed independent vectors span the original family.