Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

R8 MomPack: oppbankHist=bitR8 + GenCN DC fields + SideRanks

Definition
IntMul_Kappa_R8_Data_BitOppbankMomPack

by Ethan Cheung Wang · Oct 21, 2026 · Mathlib 0df444a (Lean v4.33.1)

bitnbhistinteger-multiplicationkappamomoppbankr8

Packaging lemmas for the opp-bank moment identity toward open oppbank_net.

The densified one-run child-width histogram coincides with the platform target:

oppbankHist=Jain.bitR8,\mathrm{oppbankHist}=\mathrm{Jain.bitR8},oppbankHist=Jain.bitR8,

so for every width mmm and every τ∈R\tau\in\mathbb{R}τ∈R,

histMoment(oppbankHist,m,τ)=histMoment(Jain.bitR8,m,τ).\mathrm{histMoment}(\mathrm{oppbankHist},m,\tau)=\mathrm{histMoment}(\mathrm{Jain.bitR8},m,\tau).histMoment(oppbankHist,m,τ)=histMoment(Jain.bitR8,m,τ).

Also records SideRanks total 162155162155162155, GenCN nNodes=62478nNodes=62478nNodes=62478 (codeBound=64251\mathrm{codeBound}=64251codeBound=64251), and the Defs51 32-bit field extractor cnField with additive stage rank counts DC1\mathrm{DC1}DC1, DC2\mathrm{DC2}DC2, DC\mathrm{DC}DC from published GenCN packs — the numeric feed for RS1_eq/RS2_eq/side_total retargets once net_mom is wired through Net0P (373d80bb373d80bb373d80bb).

Definition code
import Mathlib
import Definitions.Def_IntMul_KappaFramework
import Definitions.Def_IntMul_KappaJainData
import Definitions.Def_IntMul_Kappa_R8_Data_BitOppbankHist
import Definitions.Def_IntMul_Kappa_R8_Data_BitOppbankSideRanks
import Definitions.Def_IntMul_Kappa_R8_Data_BitOppbankGenCN

set_option autoImplicit false
set_option relaxedAutoImplicit false
set_option maxHeartbeats 4000000

/-!
# Opp-bank mom_eq packaging pieces (GenCN + SideRanks + Hist)

Histogram identity for open `oppbank_net`:
`oppbankHist = Jain.bitR8`, hence equal `histMoment` at every τ.
Also: SideRanks count, GenCN `nNodes`/`codeBound`, and per-rank `cnField`
extractor for densified `cntF` packs (Defs51 `RS*_eq` retarget).
-/

namespace IntMul.Kappa.R8.Bit.Oppbank.MomPack

open IntMul.Kappa
open IntMul.Kappa.Jain
open IntMul.Kappa.R8.Bit.Oppbank
open IntMul.Kappa.R8.Bit.Oppbank.GenCN

/-- Densified opp-bank one-run histogram matches platform `Jain.bitR8`. -/
theorem oppbankHist_eq_bitR8 : oppbankHist = bitR8 := by decide

/-- Moment identity used by `mom_eq` packaging (histogram level). -/
theorem histMoment_oppbank_eq_bitR8 (m : ℕ) (τ : ℝ) :
    histMoment oppbankHist m τ = histMoment bitR8 m τ := by
  rw [oppbankHist_eq_bitR8]

theorem histMoment_oppbank_bitR8_529 (τ : ℝ) :
    histMoment oppbankHist 529 τ = histMoment bitR8 529 τ :=
  histMoment_oppbank_eq_bitR8 529 τ

theorem sideRanks_count : sideChainRankHist_count = 162155 := sideChainRankHist_count_eq

theorem genCN_nNodes : nNodes = 62478 := nNodes_eq

theorem genCN_codeBound : 1773 + nNodes = 64251 := by
  simp [nNodes]

/-- 32-bit field extractor for packed `cntF` rank counts (Defs51). -/
def cnField (P i : ℕ) : ℕ := P / 2 ^ (32 * i) % 2 ^ 32

theorem cnField_lt (P i : ℕ) : cnField P i < 2 ^ 32 :=
  Nat.mod_lt _ (by decide : 0 < 2 ^ 32)

/-- Additive stage-1 rank histogram from GenCN `CN1_*` packs. -/
def DC1 (r : ℕ) : ℕ :=
  cnField CN1_0 r + cnField CN1_1 r + cnField CN1_2 r + cnField CN1_3 r +
    cnField CN1_4 r + cnField CN1_5 r + cnField CN1_6 r + cnField CN1_7 r +
    cnField CN1_8 r + cnField CN1_9 r + cnField CN1_10 r

/-- Additive stage-2 rank histogram from GenCN `CN2_*` packs. -/
def DC2 (r : ℕ) : ℕ :=
  cnField CN2_0 r + cnField CN2_1 r + cnField CN2_2 r + cnField CN2_3 r +
    cnField CN2_4 r + cnField CN2_5 r + cnField CN2_6 r + cnField CN2_7 r +
    cnField CN2_8 r + cnField CN2_9 r

theorem DC1_0 : DC1 0 = 17008 := by decide
theorem DC1_1 : DC1 1 = 32991 := by decide
theorem DC2_0 : DC2 0 = 17008 := by decide

/-- Combined stage rank count (feed for `side_total` / `RS*_eq`). -/
def DC (r : ℕ) : ℕ := DC1 r + DC2 r

theorem DC_0 : DC 0 = 34016 := by
  simp only [DC, DC1_0, DC2_0]

end IntMul.Kappa.R8.Bit.Oppbank.MomPack
Source
Hist cb4b257b; SideRanks 3ff13a77; GenCN 89952c1f; Jain.bitR8; Net0P 373d80bb; NetFB cb08d016

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me