Polynomial-time fixed-space component separation #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
MIPRE.LowDegree.BinaryLinear.splitBitsCappedProg_apply
(u : Cost.Unary)
(l : List Cost.BitStr)
(b : Cost.BitStr)
:
noncomputable def
MIPRE.LowDegree.BinaryLinear.componentStep
(s : Cost.Unary × List Cost.BitStr)
(b : Cost.BitStr)
:
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.LowDegree.BinaryLinear.splitBitsCapped_width
(u : Cost.Unary)
(l : List Cost.BitStr)
(b : Cost.BitStr)
(N : ℕ)
(hl : ∀ e ∈ l, List.length e ≤ N)
(e : Cost.BitStr)
:
e ∈ splitBitsCapped u l b → List.length e ≤ N
theorem
MIPRE.LowDegree.BinaryLinear.fold_componentStep_width
(bs : List Cost.BitStr)
(u : Cost.Unary)
(l : List Cost.BitStr)
(N : ℕ)
(hl : ∀ e ∈ l, List.length e ≤ N)
(e : Cost.BitStr)
:
e ∈ (List.foldl componentStep (u, l) bs).2 → List.length e ≤ N
theorem
MIPRE.LowDegree.BinaryLinear.fold_componentStep_dimension
(bs : List Cost.BitStr)
(u : Cost.Unary)
(l : List Cost.BitStr)
:
theorem
MIPRE.LowDegree.BinaryLinear.fold_componentStep_length
(bs : List Cost.BitStr)
(u : Cost.Unary)
(l : List Cost.BitStr)
(N : ℕ)
(hu : List.length u ≤ N)
(hl : l.length ≤ N)
:
theorem
MIPRE.LowDegree.BinaryLinear.esize_rows_of_width
(l : List Cost.BitStr)
(N : ℕ)
(hl : ∀ e ∈ l, List.length e ≤ N)
:
Split by every computed fixed-space generator. Clipping controls malformed inputs too.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.LowDegree.BinaryLinear.fold_componentStep_encoding
{k : ℕ}
[NeZero k]
(bs l : List (AddMonoidAlgebra (ZMod 2) (Fin k)))
(hl : ComponentFamily l)
(hb : ∀ b ∈ bs, b * b = b)
:
List.foldl componentStep
(Cost.unary k, List.map (fun (z : AddMonoidAlgebra (ZMod 2) (Fin k)) => vectorBits ((groupCoordinates k) z)) l)
(List.map (fun (z : AddMonoidAlgebra (ZMod 2) (Fin k)) => vectorBits ((groupCoordinates k) z)) bs) = (Cost.unary k, List.map (fun (z : AddMonoidAlgebra (ZMod 2) (Fin k)) => vectorBits ((groupCoordinates k) z))
(splitAllComponents l bs))
theorem
MIPRE.LowDegree.BinaryLinear.groupComponentsProg_correct
(k : ℕ)
[NeZero k]
:
groupComponentsProg.toFun (Cost.unary k) = List.map (fun (z : AddMonoidAlgebra (ZMod 2) (Fin k)) => vectorBits ((groupCoordinates k) z)) (groupComponents k)
The raw program prints precisely the nonzero primitive components, in deterministic order.