The typed oracularized game #
Piece O2 of planning/oracularization.md (issue #189): the game of the paper's typed
oracularized verifier (sec:orac-def) at one index, in the vocabulary the detyping compiler
consumes (MIPRE.CL.Detyping.typedGame), and its two value transfers to the input verifier.
- The typed sampler's distribution. Types are the three roles, on the complete type graph with
loops (
roleGraph); the CL functions are the identity for the oracle and the input sampler's two functions for the isolated players (roleFamily, withCL.CLFun.identthe identity as an(โ + 1)-level function). The typed game samples an ordered pair of roles and one common seed, and its distribution is exactly that ofSeededGame.oracular(typedGame_mu). - Soundness. For any typed predicate whose acceptance implies the oracularized predicate
after a question-dependent reading of the answers (
quantumValue_typedGame_le),val*of the typed game is at mostval*of the oracularization, so bylem:oracular-soundness-tensorit bounds the input verifier's value (valStar_ge_of_typed). - Completeness. For any typed predicate that accepts the honest encodings of accepted answer
pairs, a value-
1PCC strategy of๐ฑ_ngives one of the doubled typed game (exists_typed_perfectPCC) --- the formCL.Detyping.DeciderProgram.verifier_hasPerfectPCCtakes. It isoracleStrategy(identical operators for the two players), doubled, and pushed forward along the encoding (SyncStrategy.pushTo). - The bit-string predicate. Answers of the typed verifier are bit strings. An oracle answers
the serialization of a pair (
pairEnc, read back bypairDec), an isolated player a single string; each is parsed against the cutBaccording to the role (parseAns), and a failed parse is rejected (oraclePred). This is the predicate offig:oracle-decider, with the bounded parse that repairs 3 and 4 ofrem:oracularization-repairsask for, and it satisfies both hypotheses (valStar_ge_of_oraclePred,exists_oraclePred_perfectPCC). The typed decider program (piece O4) is to be shown to implement it.
The identity as a CL function #
The zero function with โ levels, every level on the empty register.
Equations
- MIPRE.CL.CLFun.trivialOn 0 = MIPRE.CL.CLFun.zero
- MIPRE.CL.CLFun.trivialOn โ.succ = MIPRE.CL.CLFun.cons โ 0 fun (x : ฮน โ F) => MIPRE.CL.CLFun.trivialOn โ
Instances For
The identity, as an (โ + 1)-level CL function: the whole space at the first level,
trivial levels after it. The oracularized sampler gives it to the oracle, who receives the seed
itself.
Equations
- MIPRE.CL.CLFun.ident โ = MIPRE.CL.CLFun.cons Finset.univ (MIPRE.CL.RegLinear.id Finset.univ) fun (x : ฮน โ F) => MIPRE.CL.CLFun.trivialOn โ
Instances For
The typed sampler's CL functions and type graph #
The oracularized sampler's CL functions, one per role and the same for both players: the identity for the oracle, and the input sampler's function of the corresponding original player for an isolated player.
Equations
Instances For
The complete type graph on the three roles, loops included: every ordered pair of roles is sampled.
Equations
- MIPRE.roleGraph xโยน xโ = True
Instances For
Equations
- MIPRE.instDecidableRelRoleRoleGraph xโยน xโ = isTrue trivial
The seeded game of a CL pair, and the typed game #
The seeded game presented by a pair of CL functions and a decision predicate: the game of a normal form verifier at one index, with the seed space its question space.
Equations
- MIPRE.SeededGame.ofCL L D = { LA := (L MIPRE.Player.alice).eval, LB := (L MIPRE.Player.bob).eval, D := D }
Instances For
The role family's question is the oracularized game's.
The typed seeds of the complete graph are the ordered pairs of roles with a seed.
Equations
- MIPRE.SeededGame.typedSeedEquiv = ((Equiv.subtypeUnivEquiv MIPRE.mem_roleGraph_edges).prodCongr (Equiv.refl (ฮน โ ZMod 2))).trans (Equiv.prodAssoc MIPRE.Role MIPRE.Role (ฮน โ ZMod 2))
Instances For
The typed game has the oracularization's distribution: a uniform ordered pair of roles and one common uniform seed, the oracle receiving the seed and an isolated player its original question.
Soundness through a reading of the answers. A typed predicate whose acceptance implies the oracularized predicate, after the answers are read by a map that may depend on the question, has no larger quantum value than the oracularization: a strategy is played through the reading, on the same state, and the two games have the same distribution.
Pushing a synchronous strategy into another game #
Play a synchronous strategy on another game with the same questions, its outcomes pushed
forward along f: the operator for a' is the sum over the fibre above it.
Instances For
Pushing forward loses no value when every accepted tuple stays accepted and the distribution is the same.
Pushing forward keeps the PCC property: sums over fibres of pairwise commuting operators commute.
The two transfers, at a normal form verifier #
๐ฑ_n with answers of length at most B, as a seeded game: the seed space is the question
space, and the seed's two images are the questions.
Instances For
Soundness of the typed oracularized game. For a typed predicate whose acceptance implies
the oracularized predicate after a reading of the answers, val* of the typed game above
1 - ฮต puts val* (๐ฑ_n) at least 1 - 24โฮต.
Completeness of the typed oracularized game. For a typed predicate that accepts the
encodings of every answer pair the oracularized predicate accepts, a value-1 PCC strategy of
๐ฑ_n gives one of the doubled typed game: oracleStrategy, with identical measurement
operators for the two players, doubled and pushed forward along the encoding.
The bit-string predicate #
The serialization of an oracle's pair of answers: the postorder bits of the encoded pair
(Cost.Data.toBitsPost), the format the repeated decider already parses.
Equations
- MIPRE.pairEnc a b = (MIPRE.Cost.encode (a, b)).toBitsPost
Instances For
Reading a pair back from its serialization.
Equations
Instances For
The bounded parse, by the role of the player who answered: an oracle's answer must be the
serialization of a pair of answers of length at most B, an isolated player's a single answer of
length at most B. Anything else fails to parse, and the predicate rejects it: the paper's
grouping of failed parses into one rejected outcome (repair 3), and its truncation to the cut
(repair 4) made explicit.
Equations
- One or more equations did not get rendered due to their size.
- MIPRE.parseAns B MIPRE.Role.alice xโ = if h : List.length xโ โค B then some (MIPRE.OAns.single โจxโ, hโฉ) else none
- MIPRE.parseAns B MIPRE.Role.bob xโ = if h : List.length xโ โค B then some (MIPRE.OAns.single โจxโ, hโฉ) else none
Instances For
The typed oracularized predicate on bit-string answers (fig:oracle-decider): both
answers are parsed by role, a failed parse is rejected, and otherwise the decision is the
oracularized game's.
Equations
- MIPRE.oraclePred S p q a b = match MIPRE.parseAns B p.1 a, MIPRE.parseAns B q.1 b with | some u, some v => S.oaccepts p q u v | x, x_1 => false
Instances For
The honest encoding of an oracularized answer: an oracle's pair serialized, an isolated player's answer as it is.
Equations
- MIPRE.encAns (MIPRE.OAns.pair a b) = MIPRE.pairEnc โa โb
- MIPRE.encAns (MIPRE.OAns.single a) = โa
Instances For
An answer of the right shape parses back from its honest encoding.
Acceptance of the bit-string predicate is acceptance of the oracularized one, after the answers are read by the bounded parse.
The bit-string predicate accepts the honest encodings of every answer pair the oracularized predicate accepts.
The typed oracularized predicate of ๐ฑ_n, with parse cut B, on answers of length at most
T.
Equations
- V.oracleTypedPred n B T p q a b = MIPRE.oraclePred (V.seeded n B) p q โa โb
Instances For
Soundness of the typed oracularized game of ๐ฑ_n: its quantum value above 1 - ฮต, at
any output cut, puts val* (๐ฑ_n) at the parse cut B at least 1 - 24โฮต.
Completeness of the typed oracularized game of ๐ฑ_n: a value-1 PCC strategy of ๐ฑ_n
at the parse cut B gives one of the doubled typed game, at any output cut T โฅ 8B + 3, which
holds every honest encoding.