Round-six lemma `rchunk_sound`
ProvedR6Chk.Bit.rchunk_soundAn auxiliary lemma of the round-six development, published as a separate node because its proof is long or shared.
The following holds (Lean statement, in the scope of module Solutions.R6ChkBitDag):
theorem R6Chk.Bit.rchunk_sound {sg : ℕ → ℕ} {x : ℕ} (h : rchunkChk sg x = true) :
∀ r ∈ rchunkDec x, sg r.2 = star r.1
Context. Bit round six (h = 23): DAG well-formedness and output supports (kernel checkers)
For a support function sg : ℕ → ℕ (node ↦ bitmask over the 1771 triples; in use
sg = supG, a lookup in the support tree):
gchunkChk sg x: every gate record(k, a, b)of the chunk has disjoint operand supports whose union is the support ofk(gchunk_sound);ochunkChk sg x: every output record(c, t₁, t₂, n)hassg n = star c \ (star t₁ ∪ star t₂)(triples throughcmeeting{c,t₁,t₂}only inc);rchunkChk sg x: every retained record(c, n)hassg n = star c;leafChk sg:sg 0 = 0andsg (i+1) = 2^i(input triplei).
These are the data facts behind JLV = I over ZMod 2 (the scalar word) and behind label
nesting (supports grow along every slot chain since sg a, sg b ⊆ sg k).
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 R6Chk.Bit open R6Chk
theorem R6Chk.Bit.rchunk_sound {sg : ℕ → ℕ} {x : ℕ} (h : rchunkChk sg x = true) :
∀ r ∈ rchunkDec x, sg r.2 = star r.1 := by sorry