Round-six lemma `stage2_seg`
ProvedIntMul.Kappa.R6.Bit.stage2_segAn 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.R6BitNBStW):
theorem IntMul.Kappa.R6.Bit.stage2_seg : Seg SG2_0 SG2_10 CNs2 W2F
Context. Round six, bit network: the generated chunks of the two stage words
For the stage words W1F, W2F:
- their gates are the lists
G1,G2ofR6BitNBScalB; - every instruction has a valid code, touches local wires (
< NL) and its gates join distinct touched wires; - the generator, started at the packed states
SG1_0,SG2_0, ends atSG1_11,SG2_10; all its moves are nested (nestOK) between valid codes, and the move ranks are counted by the sums of the segment counts.
The segments are the kernel checks seg1_j, seg2_j; the static ops are handled by
genF_static with the code facts sgk* of the packed states.
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_Defs51 set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open IntMul IntMul.Kappa IntMul.Kappa.R6 IntMul.Kappa.R6.Bit open R6Chk R6Chk.Bit R6Chk.Bit.Loc
theorem IntMul.Kappa.R6.Bit.stage2_seg : Seg SG2_0 SG2_10 CNs2 W2F := by sorry