One record of pass 1 (round six, `p1BG_fsp`)
ProvedIntMul.Kappa.R6.IL2C.p1BG_fspOne record of pass 1 with an abstract key program.
The following holds (Lean statement, in the scope of module Solutions.R6IL2CCorr):
theorem IntMul.Kappa.R6.IL2C.p1BG_fsp {kp : RS} {κ : ℕ → ℕ} {B M cK Bb : ℕ} (hB : 1 ≤ B) (hB2 : 2 ≤ Bb)
(hbig : 4 * (M * B) < 2 ^ Bb) (hκ : ∀ m < M, κ m < M)
(recs : ℕ → List ℤ) (hlen : ∀ m, (recs m).length = B) (hbits : ∀ m, Bnd 1 (recs m))
(s : IState HS) (hkp : KeyOK kp s κ M cK) (G0 : Fin HS → List ℤ) (hC : G0 IntMul.Kappa.R6.IL2C.rC = [])
(hE : ∀ r ∈ kEnvRegs, G0 r = []) {k : ℕ} (hk : k < M) :
FSp (p1BG kp B) (encK s (KFL.P1 κ recs M G0 k)) (encK s (KFL.P1 κ recs M G0 (k + 1)))
(cP1G cK B Bb)
Context. Round six, compact controls (I2C): the correction with an abstract key program
corrG kp B M A is KFL.corrRS with the key program keyProg replaced by any register program
kp that pushes a key κ k on rK (KeyOK); the radix sort and pass 3 are the frozen ones.
corrG_fsp: for a bijection κ of ℕ (inverse γ) preserving [0, M),
flR recs M ↦ flR (recs ∘ γ) M, at the cost cCorrG (moved records only in the sort).
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_Defs21 set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open IntMul IntMul.Kappa IntMul.Kappa.R6 IntMul.Kappa.R6.IL2C open NLogN NLogN.KFL NLogN.KIL NLogN.KFD IntMul NLogN.RS
theorem IntMul.Kappa.R6.IL2C.p1BG_fsp {kp : RS} {κ : ℕ → ℕ} {B M cK Bb : ℕ} (hB : 1 ≤ B) (hB2 : 2 ≤ Bb)
(hbig : 4 * (M * B) < 2 ^ Bb) (hκ : ∀ m < M, κ m < M)
(recs : ℕ → List ℤ) (hlen : ∀ m, (recs m).length = B) (hbits : ∀ m, Bnd 1 (recs m))
(s : IState HS) (hkp : KeyOK kp s κ M cK) (G0 : Fin HS → List ℤ) (hC : G0 IntMul.Kappa.R6.IL2C.rC = [])
(hE : ∀ r ∈ kEnvRegs, G0 r = []) {k : ℕ} (hk : k < M) :
FSp (p1BG kp B) (encK s (KFL.P1 κ recs M G0 k)) (encK s (KFL.P1 κ recs M G0 (k + 1)))
(cP1G cK B Bb) := by sorry