Repository navigation
Identical until bad: a common part, per-step costs, and coupled games - #29
Merged
Merged
Conversation
This was referenced Oct 12, 2026
Merged
MarcIlunga
force-pushed
the
game-equivalence
branch
from
October 13, 2026 09:01
509eff3 to
e0db706
Compare
Systems level (`RandomSystems/Distance/UntilBad.lean`): `transcriptCost β h`, the sum over the steps of a transcript of the cost `β p x` of the query `x` after the prefix `p`. The potential argument, proved once, is `RandomSystem.one_sub_le_sum_tSupp`: if `g` lies below a random system `R`, `g [] = 1`, each step from a possible transcript by an admitted query loses at most `β h x · R h` of `g`, and every possible transcript costs at most `ε`, then the transcripts of a compatible environment within `n` rounds carry at least `1 - ε` of `g` (the union bound over the steps; no source among the references). `RandomSystem.transcriptDistance_le_of_transcriptCost_le` follows: random systems above a common part are within `ε`, via the common-part lemma. A bound per query is the case `β h x = β x`. Games (`RandomSystems/Game/UntilBad.lean`): the part of a game with every MBO unset lies below its visible system, and a step loses from it the probability that the game sets the MBO (`RandomSystem.mass_unsetMBOs_sub_sum_le`). A game that, from every transcript with every MBO unset, sets the MBO at the next query with probability at most `β h x` times the probability of the unset transcript is won with probability at most `ε`, by a deterministic and by a probabilistic distinguisher (the potential argument on the unset part and the visible system, then `exists_unset_winProbability`). `RandomSystem.GameEquivalent.transcriptDistance_visible_le`: two games equivalent as games have the same unset part, a common part of their visible systems, and the per-step costs of the first bound its missing mass, so the visible systems are within `ε` by the systems-level corollary; neither game needs to be monotone, and only the first needs to reply at the queried interface. `PDG.gameEquivalent_behavior_of_isCoupling`: two discrete games with a joint law (Lanzenberger–Maurer, Theorem 2) whose pairs share the condition and answer alike while it does not hold are equivalent as games (CR18, Definition 4.16; Maurer 2002, Definition 5). Below: `Distribution.mass_sub_mass_le_of_le`, the one-sided common-part bound, which needs only the first law to have weight one; `abs_mass_sub_le_of_le` now applies it twice. `RandomSystem.sum_tSupp_succ`, a sum over the transcripts within `m + 1` rounds as a sum over those within `m` rounds and their extensions; `sum_tSupp` now uses it. `RandomSystem.sum_tagMBO`, the replies with both MBOs weigh the transcript, extracted from the proof of `RandomSystem.visible`. THEORY.md §1.5 gets a paragraph; `#print axioms` lines for the five endpoints. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E7GPy1oUx164NSZsxJT3N9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proof-technique stack, layer 4 (games on top of the systems level): identical until bad. It combines couplings (#26) with games equivalent as games (#28), and adds the per-step cost bound. The potential argument is proved once.
Systems level (
RandomSystems/Distance/UntilBad.lean)transcriptCost β h: the sum over the steps of a transcript of the costβ p xof the queryxafter the prefixp.RandomSystem.one_sub_le_sum_tSupp, the potential argument (the union bound over the steps). Ifglies below a random systemR,g [] = 1, each step from a possible transcript by an admitted query loses at mostβ h x · R hofg, and every possible transcript costs at mostε, then the transcripts of a compatible environment withinnrounds carry at least1 - εofg.RandomSystem.transcriptDistance_le_of_transcriptCost_le: random systems above a common part, with those per-step costs, are withinε. The proof ladders'transcriptDistance_le_of_untilBadis the caseβ h x = β x(Upstream candidates from downstream projects: a layer-by-layer PR stack #14, L1d).Games (
RandomSystems/Game/UntilBad.lean)β h xtimes that of the unset transcript is won with probability at mostε, by a deterministic or a probabilistic distinguisher:winProbability_le_of_transcriptCost_le.RandomSystem.GameEquivalent.transcriptDistance_visible_le: two games equivalent as games share their unset part, which is a common part of their visible systems, and the first game's per-step costs bound its missing mass. So the visible systems are withinε. Neither game needs to be monotone, and only the first needs to reply at the queried interface.PDG.gameEquivalent_behavior_of_isCoupling: two discrete games with a joint law (Lanzenberger–Maurer, Theorem 2), whose pairs share the condition and answer alike while it does not hold, are equivalent as games (CR18, Definition 4.16; Maurer 2002, Definition 5).Helpers in lower files
Distribution.mass_sub_mass_le_of_le: the one-sided common-part bound, which needs only the first law to have weight one;abs_mass_sub_le_of_lenow applies it twice.RandomSystem.sum_tSupp_succ: sums over transcripts withinm + 1rounds;sum_tSuppnow uses it.RandomSystem.sum_tagMBO: extracted from the proof ofRandomSystem.visible.THEORY.md §1.5 gets a paragraph.
Checks: build with
--wfail, axiom audit (10,392 declarations), linter set on the new and changed code, anchors, math rendering, citations checked on the PDFs.The stack
Proof techniques for the HCTR2 port, one technique per PR, ordered by abstraction (merge bottom-up):
🤖 Generated with Claude Code
https://claude.ai/code/session_01E7GPy1oUx164NSZsxJT3N9