Documentation

MIPRE.Foundations.LowDegree.BinaryKernel

Effective generators for a binary matrix kernel #

theorem MIPRE.LowDegree.BinaryLinear.typedReduceStep_eq_linear {n t : ℕ} (r : Row n t) (p : Pivot n t) :
typedReduceStep r p = r + r.1 p.1 • p.2

In characteristic two, conditional row addition is a linear map.

@[simp]
theorem MIPRE.LowDegree.BinaryLinear.typedReduce_zero_value {n t : ℕ} (b : List (Pivot n t)) (x : Fin t → ZMod 2) :

A row whose value is zero keeps its entire certificate unchanged.

def MIPRE.LowDegree.BinaryLinear.kernelMap {m n : ℕ} (A : Matrix (Fin m) (Fin n) (ZMod 2)) :
(Fin n → ZMod 2) →ₗ[ZMod 2] Fin n → ZMod 2

Reduce the graph of the original matrix map and retain the certificate. This is a projection onto its kernel.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem MIPRE.LowDegree.BinaryLinear.kernelMap_apply {m n : ℕ} (A : Matrix (Fin m) (Fin n) (ZMod 2)) (x : Fin n → ZMod 2) :
    theorem MIPRE.LowDegree.BinaryLinear.kernelMap_mem_ker {m n : ℕ} (A : Matrix (Fin m) (Fin n) (ZMod 2)) (x : Fin n → ZMod 2) :

    Every output of the computed projection is in the matrix kernel.

    theorem MIPRE.LowDegree.BinaryLinear.kernelMap_fixed {m n : ℕ} (A : Matrix (Fin m) (Fin n) (ZMod 2)) (x : Fin n → ZMod 2) (hx : x ∈ A.mulVecLin.ker) :
    (kernelMap A) x = x

    The projection fixes every vector already in the kernel.

    The images of the standard basis generate exactly the matrix kernel.

    Compute at most n generators of an m-by-n binary matrix kernel. The explicit unary input is the number of columns.

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

      The raw program prints canonical vectors spanning the full matrix kernel.

      The generated family has polynomial length and every vector lies in the kernel.