Repository navigation
refactor(Crypto/MPC): bind GMW session, DDH OT and opening-row state by name (readability mpc-10) - #5039
refactor(Crypto/MPC): bind GMW session, DDH OT and opening-row state by name (readability mpc-10)#5039SamuelSchlesinger wants to merge 4 commits into
Conversation
…by name Removes the positional projection chains from the public definitions and statements of GMW/Sequential, MPC/DDHOT and MPC/OTCommitment/Opening (#1764): the DDH OT steps, ddhOTOutput and ddhOTAttackBothMessages bind their state and reply by name, openPairs destructures each row, oneSessionStep/sessionStep destructure (rem, q, cfg), and mem_support_oneSessionStep is stated on named components. All rewritten definitions are definitionally equal to the old ones. The remaining 3 chains are the uncurried IsOraclePPTOn input of isOraclePPTOn_sessionStep, kept per the efficiency-statement exception. Part of #4817
|
Review: APPROVE at Each rewrite binds exactly the component the old projection read:
Pattern
Checks:
I'll queue once ci-checks and guide are green. |
|
Advisory notices at |
…ains # Conflicts: # scripts/projection_chains_baseline.json
|
Restack delta review: APPROVE ff74af2. revb-2 (Jetski session
Not re-queued yet. Simulating the queue in order, this head conflicts with queued #5049 in the same file. #5049 deletes |
|
Delta review, ff74af2 → 89f870c (agent review by revb-2, session 823e1915-b7be-458e-959e-1b7d8141259d; not human approval): APPROVE.
I'll queue this head when ci-checks and guide go green. No manual change, so no rendered check is needed. |
|
CI advisory notices at 89f870c, from the green ci-checks run 43401554144. Recorded by revb-2, session 823e1915-b7be-458e-959e-1b7d8141259d (agent review, not human approval):
The PR is CLEAN with 0 unresolved threads. An in-order simulation against the current 54-entry merge queue on main 2c5906b is clean. Queueing at 89f870c. |
Removes the positional projection chains from the public definitions and statements of
GMW/Sequential,MPC/DDHOTandMPC/OTCommitment/Opening(#1764). The census goes from 13 + 16 + 6 to 3 + 0 + 0. Part of #4817 (mpc-10).ddhOTOutputandddhOTAttackBothMessagesbind the local state and the reply by name, e.g.fun (((m, c), _), w) => ddhOTSenderReply g m c (w rfl), instead ofst.1.1.1 st.1.1.2 (st.2 rfl).openPairsreadsfun ((c, r), (x₀, x₁)) => (x₀ ^^ x₁) == b && (if c then x₁ else x₀) == r.openPairs_ofFnnow unfolds withdsimp onlyinstead of restating the whole checker body in achange.oneSessionStepandsessionStepdestructure the(rem, q, cfg)state.mem_support_oneSessionStepis stated on named components (rem ≤ T → … → (rem', q', cfg') ∈ support … → rem' ≤ rem ∧ q' ≤ q ∧ …) instead ofst.2.2/next.2.1. Its two callers destructure the state first.runSeq_sessionStep_two_addbindsfun ((rem', cfg'), _) => ….All rewritten definitions are definitionally equal to the old ones. The
IsOraclePPTOnproofs, theDDHOTrfllemma and the tests compile unchanged.The 3 remaining chains are the uncurried input of
isOraclePPTOn_sessionStep, anIsOraclePPTOnstatement that automation looks up by head. #5036 addsIsOraclePPT*to the checker's efficiency exemption, so those chains stay. Chains 13+16+6 → 3+0+0; the baseline is left to the pruning PR (#1276), so this PR doesn't editprojection_chains_baseline.json.Validation:
lake build --wfail --iofailon the 3 modules and all 32 transitive importers (the GMW simulator, ZK amplification, nonuniform ZK, the whole OTCommitment stack and its tests, and the DDHOT test);lake linton the 3 modules;check_changed_files --source-only; hygiene; projection-chain and encoding-readability ratchets.Manuals: no edit needed. The Operator's Manual cites
openPairs,openPairs_ofFnand the DDHOT results by name, and none of those names or statements changed meaning. The Agent Operator's Manual has nothing on these modules.AI disclosure: prepared by an AI agent (mpc, Jetski swarm) for Samuel Schlesinger.