Oracularization, at the level of games #
Blueprint thm:oracularization (paper oracularization.tex, sec:orac-def and
fig:oracle-decider) turns a normal form verifier into one where a single player --- the
oracle --- receives the sampler's whole seed and answers both original questions, while the
other player receives one of the two questions and must answer consistently. That makes the
predicate a pointwise function of one player's answer, which is the format answer reduction
needs.
This file is the construction and its question distribution, at the level of games: no
samplers, no deciders, no types-as-Turing-machine-strings. What oracularization uses of a
sampler is only the pair of maps L^𝖠, L^𝖡 on the seed space, so the input here is a
SeededGame: a finite seed space, two question maps, and a decision predicate. The original
game is the law of (L^𝖠 z, L^𝖡 z) for a uniform seed, the paper's CL distribution
(MIPRE.CL.clDist is the same thing for V = 𝔽^ι).
The output SeededGame.oracular is a SynchronousGame on questions Role × V and answers
OAns A, and its synchronicity is not an extra hypothesis: equal questions have equal roles,
and check 2(a) of fig:oracle-decider rejects unequal answers there.
Scope, and what this file does not do #
Two of the four repairs rem:oracularization-repairs records are about the verifier, not the
game, and are untouched here: grouping the decider's failed bounded parses into one
distinguished outcome (so the oracle families are projective measurements rather than
sub-measurements), and the truncation of answers to B_𝒟(n). At a finite game-level answer
alphabet there is no parse to fail, so there is nothing to group; saying so is more honest than
claiming the repair is discharged. What is modelled is the shape check: an answer whose shape
does not match the player's role is rejected (shapeOk), which is the game-level residue of
the parse.
Completeness --- a value-1 PCC strategy for the input gives one for the output, with
identical measurement operators rather than a symmetric state, which is repair 2 --- and
soundness, with its single square root, are separate pieces.
Roles #
Equations
- MIPRE.instFintypeRole = { elems := {MIPRE.Role.oracle, MIPRE.Role.alice, MIPRE.Role.bob}, complete := ⋯ }
Equations
- MIPRE.instInhabitedRole = { default := MIPRE.Role.oracle }
Seeded games #
A seeded game: the question pair is (L^𝖠 z, L^𝖡 z) for a seed z drawn uniformly
from a finite space, and the predicate is read off the questions and answers. This is
everything oracularization uses of a normal form verifier's sampler.
- LA : V → V
Alice's question map.
- LB : V → V
Bob's question map.
- D : V → V → A → A → Bool
The decision predicate of the original game.
Instances For
The question distribution of the input game: the law of (L^𝖠 z, L^𝖡 z).
Instances For
The oracularized alphabets #
Answers of the oracularized game: a pair, from an oracle, or a single answer, from an isolated player. An answer whose shape does not match the role is rejected.
Instances For
Equations
- MIPRE.instDecidableEqOAns.decEq (MIPRE.OAns.pair a a_1) (MIPRE.OAns.pair b b_1) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- MIPRE.instDecidableEqOAns.decEq (MIPRE.OAns.pair a b) (MIPRE.OAns.single a_1) = isFalse ⋯
- MIPRE.instDecidableEqOAns.decEq (MIPRE.OAns.single a) (MIPRE.OAns.pair a_1 b) = isFalse ⋯
- MIPRE.instDecidableEqOAns.decEq (MIPRE.OAns.single a) (MIPRE.OAns.single b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
OAns A as a sum type. The Fintype instance goes through this rather than through a
union of images, so that a sum over OAns A splits into the two blocks (OAns.sum_eq), which
is what the measurement's normalization needs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- MIPRE.instInhabitedOAns = { default := MIPRE.OAns.single default }
The question a player in role r receives on seed z: the oracle gets the seed itself,
an isolated player the question the corresponding original player would have received.
Equations
- S.oquestion MIPRE.Role.oracle x✝ = (MIPRE.Role.oracle, x✝)
- S.oquestion MIPRE.Role.alice x✝ = (MIPRE.Role.alice, S.LA x✝)
- S.oquestion MIPRE.Role.bob x✝ = (MIPRE.Role.bob, S.LB x✝)
Instances For
The decision predicate of fig:oracle-decider #
The shape check: an oracle answers a pair, an isolated player a single answer.
Equations
Instances For
The game check, step 1: an oracle's pair of answers must be accepted by the original predicate at the pair of questions its seed determines.
Equations
Instances For
Check 2(b): an oracle's component for the other player's role must match that player's answer.
Equations
- MIPRE.SeededGame.oracleVsPlayer (MIPRE.Role.oracle, snd) (MIPRE.Role.alice, snd_1) (MIPRE.OAns.pair a b) (MIPRE.OAns.single a') = decide (a = a')
- MIPRE.SeededGame.oracleVsPlayer (MIPRE.Role.oracle, snd) (MIPRE.Role.bob, snd_1) (MIPRE.OAns.pair a b) (MIPRE.OAns.single b') = decide (b = b')
- MIPRE.SeededGame.oracleVsPlayer x✝³ x✝² x✝¹ x✝ = true
Instances For
The predicate of fig:oracle-decider: the shape checks, the game check for each oracle,
and the two consistency checks --- equal roles force equal answers, and an oracle's relevant
component must match an isolated player's answer.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The oracularized game #
The uniform distribution over the oracularized game's random choices: the ordered pair of roles and the seed.
Equations
- S.oDist p q = ∑ s : MIPRE.Role × MIPRE.Role × V, (↑(Fintype.card (MIPRE.Role × MIPRE.Role × V)))⁻¹ * if (S.oquestion s.1 s.2.2, S.oquestion s.2.1 s.2.2) = (p, q) then 1 else 0
Instances For
The oracularized game (blueprint thm:oracularization, paper sec:orac-def). It is
synchronous with no further hypothesis: equal questions carry equal roles, and check 2(a)
rejects unequal answers there.