The introspection question types #
The source's type set consists of the Pauli types and two copies of
Introspect, Sample, Read, and Hide₁, ..., Hideℓ. The Pauli type is a
parameter so the foundational construction can be instantiated with the
concrete Pauli test without importing a Background module.
Equations
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.introspect MIPRE.Introspection.AuxType.introspect = isTrue ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.introspect MIPRE.Introspection.AuxType.sample = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.introspect MIPRE.Introspection.AuxType.read = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.introspect (MIPRE.Introspection.AuxType.hide k) = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.sample MIPRE.Introspection.AuxType.introspect = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.sample MIPRE.Introspection.AuxType.sample = isTrue ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.sample MIPRE.Introspection.AuxType.read = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.sample (MIPRE.Introspection.AuxType.hide k) = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.read MIPRE.Introspection.AuxType.introspect = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.read MIPRE.Introspection.AuxType.sample = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.read MIPRE.Introspection.AuxType.read = isTrue ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq MIPRE.Introspection.AuxType.read (MIPRE.Introspection.AuxType.hide k) = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq (MIPRE.Introspection.AuxType.hide k) MIPRE.Introspection.AuxType.introspect = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq (MIPRE.Introspection.AuxType.hide k) MIPRE.Introspection.AuxType.sample = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq (MIPRE.Introspection.AuxType.hide k) MIPRE.Introspection.AuxType.read = isFalse ⋯
- MIPRE.Introspection.instDecidableEqAuxType.decEq (MIPRE.Introspection.AuxType.hide a) (MIPRE.Introspection.AuxType.hide b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
There are exactly ℓ + 3 auxiliary types for either original player.
The auxiliary type's binary code, with the three fixed tags first.
Equations
Instances For
Out-of-range hiding labels are rejected by the decoder.
Equations
- MIPRE.Introspection.AuxType.ofNat ℓ 0 = some MIPRE.Introspection.AuxType.introspect
- MIPRE.Introspection.AuxType.ofNat ℓ 1 = some MIPRE.Introspection.AuxType.sample
- MIPRE.Introspection.AuxType.ofNat ℓ 2 = some MIPRE.Introspection.AuxType.read
- MIPRE.Introspection.AuxType.ofNat ℓ k.succ.succ.succ = if h : k < ℓ then some (MIPRE.Introspection.AuxType.hide ⟨k, h⟩) else none
Instances For
Equations
- One or more equations did not get rendered due to their size.
The tag encoding has logarithmic size in the number of hiding levels.
Pauli types together with the introspection tests for the two original players.
Equations
- MIPRE.Introspection.QuestionType PauliType ℓ = (PauliType ⊕ MIPRE.Introspection.AuxType ℓ × Bool)
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Instances For
Equations
Instances For
Introspection contributes exactly 2ℓ + 6 vertices.
The paper's 26 Pauli types give 2ℓ + 32 introspection types.
A type exists independently of the Pauli type set and of the number of hiding levels.
A single bit distinguishes Pauli labels from role-tagged auxiliary labels.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
- MIPRE.Introspection.QuestionType.ofData MIPRE.Cost.Data.nil = none
Instances For
Equations
- MIPRE.Introspection.QuestionType.instSizedEncoding = { encode := MIPRE.Introspection.QuestionType.toData, decode := MIPRE.Introspection.QuestionType.ofData, decode_encode := ⋯ }