Repository navigation
feat(Crypto/TwoStage): eval_lrExperiment - #4905
SamuelSchlesinger wants to merge 5 commits into
Conversation
…1, WIP) Experiment := ProbComp Bool with succProbability/advantage (+ Pr bridges), distAdvantage, Game.withSetup; TwoStage + TwoStage.IsPPT (family over n), MessagePair + encMessagePair, lrExperiment on a drawn public input. SSP.advantage restated through Experiment.advantage. Part of #4817. Session: Jetski de72c51e (swarm worker infra).
…aragraph (I1) encMessagePair is encOfEquiv MessagePair.equivProd (encPair encM encM), so the encoded words equal the word adversary's encChoiceOut (checked by rfl in the test). The SSP tests unfold Experiment.advantage before rewriting the evaluated runs.
Experiment.advantage_bind_le_of_support and succProbability_bind_le_of_support lift a bound at every output of a setup program (key generation) to setup >>= exp, through Experiment.eval_bind_eq_withSetup. The TwoStage.IsPPT test now uses a typed saved state, and the module doc notes that the word-to-typed converse needs a stage-2 simulation.
|
Agent review (Jetski revc-2 session 7eb004ef-055e-4c26-8b2e-bee0bc58f5fc), head 3b9f4e0: APPROVE. This is an agent review, not human approval.
Queueing: per the body, this waits for #4878 to land, then the retarget to |
…ver the fixed-modulus experiments dcrRealGame and dcrRandomGame (renamed from dcrIdealGame) are now Game.withSetup over dcrRealExperiment/dcrRandomExperiment, replacing the inline sampling and the _eq_withSetup lemmas. Paillier/Security unfolds through the experiments. Paillier/Finite uses infra's eval_lrExperiment (#4905) instead of a private copy. (H4 review, dhrev-1)
…l-lr # Conflicts: # CslibFrontier/Crypto/Computational/TwoStage.lean # CslibFrontierTests/Crypto/Experiment.lean # manual/programs-crypto-and-probability/security-games-and-primitives.md
|
Agent review (Jetski revc-2 session 7eb004ef-055e-4c26-8b2e-bee0bc58f5fc), head 6d39016: APPROVE.
Merge 6d39016: Checked locally at this head: This is an agent review, not human approval. |
|
Rendered-manual check for the approved head 6d39016. Rendered: inspected PDF p. 424 (printed p. 416) of cslib-frontier-operators-manual.pdf from run 43376003189: OK. The I checked the page's text layer, link annotations and word bounding boxes: no raw markdown, every word stays inside the 72pt margins, and the new links point to this head. Agent review (Jetski revc-2, session 7eb004ef-055e-4c26-8b2e-bee0bc58f5fc), not human approval. Agent Operator's Manual: no edit needed. Its manifest takes only |
Adds
eval_lrExperiment, a@[simp]lemma giving the output distribution of I1'slrExperiment. The adversary chooses a pair. On an admissible pair the output is the guess on the encryption of the selected message; otherwise it isPMF.pure false. Two open PRs were each working around the missing lemma: #4901 with a privateeval_lrExperiment_true(Paillier), and #4887 (PKE.cpaExperiment). They can now call this lemma and drop their private copies before landing.Infrastructure only; there is no new mathematics. Part of #4817 (crypto readability; requested on the swarm board after the #4901 review).
Stacking. #4878 landed at 8871b54. This PR now targets
main, which is merged at 6d39016; the diff is the same 3 files, +26/−1.Changes
Crypto/Computational/TwoStage.lean:eval_lrExperiment, listed under Main results.CslibFrontierTests/Crypto/Experiment.lean: client for the always-admissible case, closed bysimp. This is the form Paillier's private lemma states.security-games-and-primitives.md): one clause naming the lemma. The Agent Operator's Manual needs no edit because the change adds no workflow or tooling.Validation: on the main merge 6d39016, a targeted
lake build --wfail --iofailofTwoStageand its only importer, the Experiment test, is green. Module lint,check_hygiene.py --check-simp,mk_all --check, source-only changed-file lints and the manual checker (errors []) pass. CI does the full run.ROADMAP, the results inventory and the upstream markers are unchanged (
TwoStagestays-- upstream: candidate).Session: infra (Jetski swarm worker, conversation de72c51e), branch
readability/infra-eval-lr.AI disclosure: written by an AI agent (Jetski/Gemini) under the cslib-frontier swarm workflow; agent review is not human review.