Documentation

MIPRE.Background.Tailored.Intro.LpIntroCons

The constraints of the introspection processor at a pair of detyped questions #

Issue #281. The processor's core (mainP) on the environment, the two readable answers and the two detyped questions: it decodes the edge of the two graph views (edgeSel, the router's selectedEdge as a finite table), branches on it over the finite label alphabet (Cost.PolyTimeFun.choose), checks the readable lengths, and computes the constraints of Typed.consRaw at the edge's labels (rawP): the Pauli basis test (pauliConsProg), the Pauli to auxiliary clauses (pauliAuxP, in either order), and the auxiliary pairs (auxPairP).

mainP_spec: on the environment of a bounded input and the bits of two detyped questions, the output is the detyped game's constraints, TypedData.detype's cons on Sound.tdata.

The lengths of a label #

The length of kind κ of a label, in unary (LenIntro.lin on the parameters).

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem MIPRE.Tailored.Intro.LpIntro.envT_par (c lam n : ℕ) (T : TailoredVerifier 7) :
    (envT c lam n T).2.2.2.1 = (Cost.unary (kk c lam n), Cost.unary (jj c lam n), Cost.unary (2 ^ jj c lam n))
    theorem MIPRE.Tailored.Intro.LpIntro.length_lenU (c lam n : ℕ) (T : TailoredVerifier 7) (t : Label) (κ : Bool) :
    List.length ((lenU t κ).toFun (envT c lam n T)) = if κ = true then Typed.len (kk c lam n) (jj c lam n) ((2 ^ n) ^ lam) t - Typed.lenR (kk c lam n) (jj c lam n) ((2 ^ n) ^ lam) t else Typed.lenR (kk c lam n) (jj c lam n) ((2 ^ n) ^ lam) t
    theorem MIPRE.Tailored.Intro.LpIntro.length_lenU_false (c lam n : ℕ) (T : TailoredVerifier 7) (t : Label) :
    List.length ((lenU t false).toFun (envT c lam n T)) = Typed.lenR (kk c lam n) (jj c lam n) ((2 ^ n) ^ lam) t
    theorem MIPRE.Tailored.Intro.LpIntro.length_totLenU (c lam n : ℕ) (T : TailoredVerifier 7) (t : Label) :
    List.length ((totLenU t).toFun (envT c lam n T)) = Typed.len (kk c lam n) (jj c lam n) ((2 ^ n) ^ lam) t

    The Pauli to auxiliary clauses #

    The first hiding edge's constraints (pauliHideCons at the first factor and its kernel generators), role w.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      The directed clauses from a Pauli label to an auxiliary one (Typed.pauliDir).

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        The constraints from a Pauli label to an auxiliary one (Typed.pauliAux).

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          The pair of questions #

          @[reducible, inline]

          The environment, the two readable answers and the two questions' bits.

          Equations
          Instances For
            @[reducible, inline]

            The number of bits of a graph view.

            Equations
            Instances For

              The edge of the two graph views (the router's selectedEdge), by a finite table.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                The constraints at a pair of labels before the length check (Typed.consRaw).

                Equations
                Instances For

                  The constraints at an edge (Typed.consL), none off the edges.

                  Equations
                  Instances For

                    Correctness #

                    theorem MIPRE.Tailored.Intro.LpIntro.pauliHideP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (he : Even c) (T : TailoredVerifier 7) (V : Verifier 7) (hT : T.IsBounded lam) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hsamp : V.sampler.prog = T.sampler.prog) (hs : V.sampler.dim (2 ^ n) ≤ QQ c lam n) (w : Bool) (aR bR : Cost.BitStr) :
                    (pauliHideP U w).toFun (envT c lam n T, aR, bR) = PauliHide.pauliHideCons (kk c lam n) ⋯ ⋯ (jj c lam n) (LL V hs w) (regKerGens (QQ c lam n) ((LL V hs w).factorOfPrefix 0 0) (Introspection.CLChecks.stageLinear (LL V hs w) 0 0))

                    The first hiding edge's constraints.

                    theorem MIPRE.Tailored.Intro.LpIntro.pauliDirP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (he : Even c) (T : TailoredVerifier 7) (V : Verifier 7) (hT : T.IsBounded lam) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hsamp : V.sampler.prog = T.sampler.prog) (hs : V.sampler.dim (2 ^ n) ≤ QQ c lam n) (p : QLD.Ty) (t : Introspection.AuxType 7 × Bool) (aR bR : Cost.BitStr) (ha : List.length aR = PauliCons.pauliLenR (kk c lam n) (2 ^ jj c lam n) p) :
                    (pauliDirP U p t).toFun (envT c lam n T, aR, bR) = Typed.pauliDir (kk c lam n) ⋯ ⋯ (jj c lam n) ((2 ^ n) ^ lam) V hs (regKerGens (QQ c lam n)) p t aR bR

                    The directed clauses from a Pauli label to an auxiliary one.

                    theorem MIPRE.Tailored.Intro.LpIntro.pauliAuxP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (he : Even c) (T : TailoredVerifier 7) (V : Verifier 7) (hT : T.IsBounded lam) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hsamp : V.sampler.prog = T.sampler.prog) (hs : V.sampler.dim (2 ^ n) ≤ QQ c lam n) (p : QLD.Ty) (t : Introspection.AuxType 7 × Bool) (aR bR : Cost.BitStr) (ha : List.length aR = PauliCons.pauliLenR (kk c lam n) (2 ^ jj c lam n) p) (hb : List.length bR = auxLenR (QQ c lam n) ((2 ^ n) ^ lam) t.1) :
                    (pauliAuxP U p t).toFun (envT c lam n T, aR, bR) = Typed.pauliAux (kk c lam n) ⋯ ⋯ (jj c lam n) ((2 ^ n) ^ lam) T V hs (regKerGens (QQ c lam n)) p t aR bR

                    The constraints from a Pauli label to an auxiliary one.

                    theorem MIPRE.Tailored.Intro.LpIntro.rawP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (hc : 1 ≤ c) (he : Even c) (T : TailoredVerifier 7) (V : Verifier 7) (hT : T.IsBounded lam) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hsamp : V.sampler.prog = T.sampler.prog) (hs : V.sampler.dim (2 ^ n) ≤ QQ c lam n) (u v : Label) (aR bR xs ys : Cost.BitStr) (hx : (List.drop gd xs).length = Introspection.PauliSampler.dimension c lam n) (hy : (List.drop gd ys).length = Introspection.PauliSampler.dimension c lam n) (ha : List.length aR = Typed.lenR (kk c lam n) (jj c lam n) ((2 ^ n) ^ lam) u) (hb : List.length bR = Typed.lenR (kk c lam n) (jj c lam n) ((2 ^ n) ^ lam) v) :
                    (rawP U u v).toFun ((envT c lam n T, aR, bR), xs, ys) = Typed.consRaw (kk c lam n) ⋯ ⋯ (jj c lam n) ⋯ ((2 ^ n) ^ lam) T V hs (regKerGens (QQ c lam n)) u v (List.drop gd xs) (List.drop gd ys) aR bR

                    The constraints at a pair of labels, before the length check, for readable answers of the labels' readable lengths and contents of the sampler's dimension.

                    The core of the processor at two detyped questions: the detyped game's constraints.