Label certificate (round six, `label_of_cert`)
ProvedR6Chk.label_of_certLabel certificate.
The following holds (Lean statement, in the scope of module Solutions.R6ChkF2):
theorem R6Chk.label_of_cert {k m : ℕ} {b d : Fin k → (Fin n → ZMod 2)} {h e : Fin m → (Fin n → ZMod 2)} (hmk : m + k = n)
(hHB : ∀ i j, h i ⬝ᵥ b j = 0) (hHE : ∀ i j, h i ⬝ᵥ e j = if i = j then 1 else 0)
(hDH : ∀ j i, d j ⬝ᵥ h i = 0) (hDB : ∀ j i, d j ⬝ᵥ b i = if i = j then 1 else 0) :
(∀ x, x ∈ spanF b ↔ ∀ i, h i ⬝ᵥ x = 0) ∧ finrank (ZMod 2) (spanF b) = k ∧
NondegF (spanF b)
Context. F₂ linear algebra from packed certificates
Semantics: vr n X i : Fin n → ZMod 2 is row i of the packed number X (bit t of the
32-bit field i). Certificates are lists of rows; all checks are dotsP products compared with
target patterns (R6ChkPack).
dot_of_dotsP: adotsPequation gives every inner productvr A j ⬝ᵥ vr B i.indep_of_dual: rows with a dual family (e_j ⬝ v_i = δ) are independent.mem_iff_of_cert(label certificate):B(krows),H(n-krows) withH Bᵀ = 0,H Eᵀ = I,D Hᵀ = 0,D Bᵀ = I⟹span B = ker H,dim = k, nondegenerate.pair_of_cert(edge certificate):U ⊆ V, a dual ofU, and an orthonormal basisRof the residual (R ⊥ U,R ⊆ V,|R| = dim V − |U|) ⟹span Unondegenerate of dim|U|, andU = Vor a norm-onew ∈ Vorthogonal toUexists.
Formalization Note. Part of the Lean formalization of the round-six κ-improvement (integer-multiplication-kappa campaign, target IntMul.Kappa.jain_round6_framework). The statement is copied verbatim from the Lean development; the platform node carries the same declaration name. Definitions it mentions live in the IntMul_Kappa_R6_Defs* bundles (on top of the published κ bundles IntMul_Kappa_K_Defs*).
-- Round-six κ development (integer-multiplication-kappa), generated by skeleton subtraction.
import Definitions.Def_IntMul_Kappa_R6_Defs9
set_option autoImplicit false
set_option relaxedAutoImplicit false
set_option maxHeartbeats 1000000
open R6Chk
open Matrix Matrix.Module Module
variable {n : ℕ}
theorem R6Chk.label_of_cert {k m : ℕ} {b d : Fin k → (Fin n → ZMod 2)} {h e : Fin m → (Fin n → ZMod 2)} (hmk : m + k = n)
(hHB : ∀ i j, h i ⬝ᵥ b j = 0) (hHE : ∀ i j, h i ⬝ᵥ e j = if i = j then 1 else 0)
(hDH : ∀ j i, d j ⬝ᵥ h i = 0) (hDB : ∀ j i, d j ⬝ᵥ b i = if i = j then 1 else 0) :
(∀ x, x ∈ spanF b ↔ ∀ i, h i ⬝ᵥ x = 0) ∧ finrank (ZMod 2) (spanF b) = k ∧
NondegF (spanF b) := by sorry