Documentation

MIPRE.Tailored.Intro.KerGensProg

Kernel generators of a register-local linear map, as the image of a program #

The constraint families of MIPRE.Tailored.Intro.AuxCons are parametric in lists of generators of the kernels of register-local linear maps (KerGens). This file supplies one, as the image of a single polynomial-time program.

The program is the existing binary kernel solver LowDegree.BinaryLinear.kernelGeneratorsProg: it eliminates the columns of the matrix together with an identity certificate and prints the reduced certificate of each standard basis vector, that is the images of the standard basis under a projection onto the kernel. Here its correctness is restated in the coordinates of the sampler (CL.toBits, CL.ofBits):

@[reducible, inline]

Generators of the kernel of an m × s binary matrix, computed in polynomial time from s in unary and the matrix rows as bit strings of length s.

Equations
Instances For
    theorem MIPRE.Tailored.Intro.kernelGens_correct {m s : ℕ} (A : Matrix (Fin m) (Fin s) CL.𝔽₂) :
    (∀ v ∈ kernelGens.toFun (Cost.unary s, List.ofFn fun (i : Fin m) => CL.toBits (A i)), List.length v = s ∧ A.mulVec (CL.ofBits s v) = 0) ∧ ∀ (z : Fin s → CL.𝔽₂), A.mulVec z = 0 → z ∈ Submodule.span CL.𝔽₂ {x : Fin s → CL.𝔽₂ | ∃ v ∈ kernelGens.toFun (Cost.unary s, List.ofFn fun (i : Fin m) => CL.toBits (A i)), CL.ofBits s v = x}

    The kernel generators program is correct. Every output vector has length s and lies in the kernel of A; every vector of the kernel is in the span of the outputs.

    The rows of the standard matrix of a linear map on 𝔽₂^Q, as bit strings.

    Equations
    Instances For
      noncomputable def MIPRE.Tailored.Intro.regKerGens (Q : ℕ) (S : Finset (Fin Q)) (M : CL.RegLinear CL.𝔽₂ S) :

      Generators of the kernel of every register-local linear map on 𝔽₂^Q: the output of kernelGens on the rows of its standard matrix.

      Equations
      Instances For

        The program's kernel generators satisfy KerGens.