Documentation

MIPRE.Background.Tailored.Intro.LpIntroAux

The auxiliary constraints of the introspection processor #

Issue #281. At a pair of auxiliary labels t, u (fixed: the processor branches on the edge over the finite label alphabet) and two readable answers aR, bR, the constraints AuxCons.auxPair of Typed.consRaw as a Cost.PolyTimeFun on the environment and the two answers (DIn): the readable conditions at both registers (GP), the consistency list (sameP), and the directed lists of both orientations (dirP), assembled by auxPairF.

The data of each clause are read off the kernel's context (CLData) and the clocked runs of the input's programs (InputRuns); the stage data are correct under the prefix guards, which the readable conditions contain, so dirP_spec assumes them and auxPairP_spec does not.

Two answers in the environment #

@[reducible, inline]

The environment and two readable answers.

Equations
Instances For

    A register-level program at a computed register.

    Equations
    Instances For
      @[simp]
      theorem MIPRE.Tailored.Intro.LpIntro.qr_apply (d : DIn) :
      qr.toFun d = (d.1.2.2.2.2.1, d.1.2.2.2.2.2)

      The clauses #

      The input-answer equality between label t at aR and label u at bR: equal splits and equal readable input answers.

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

        Consistency at the label t: sameCons.

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

          The sampling comparison: sampleCons.

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

            The reading comparison: readCons.

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

              The last Hide against Read: hideReadCons.

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

                Consecutive Hide levels k, k + 1: hideNextCons.

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

                  The source game's constraints: the input's processor at the two Introspect registers.

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

                    The length of a label's answers: auxLen.

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

                      The constraints at a pair of auxiliary labels: auxPair.

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

                        Correctness #

                        theorem MIPRE.Tailored.Intro.LpIntro.envT_Q (c lam n : ℕ) (T : TailoredVerifier 7) :
                        (envT c lam n T).2.2.2.2.1 = Cost.unary (QQ c lam n)
                        theorem MIPRE.Tailored.Intro.LpIntro.envT_R (c lam n : ℕ) (T : TailoredVerifier 7) :
                        (envT c lam n T).2.2.2.2.2 = Cost.unary ((2 ^ n) ^ lam)
                        theorem MIPRE.Tailored.Intro.LpIntro.srcEqB_envT (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (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) (t u : Introspection.AuxType 7 × Bool) (aR bR : Cost.BitStr) (ha : QQ c lam n ≤ List.length aR) (hb : QQ c lam n ≤ List.length bR) :
                        (srcEqB U t u).toFun (envT c lam n T, aR, bR) = decide (srcSplitR T V hs t (win aR 0 (QQ c lam n)) = srcSplitR T V hs u (win bR 0 (QQ c lam n)) ∧ srcSplitL T V hs t (win aR 0 (QQ c lam n)) = srcSplitL T V hs u (win bR 0 (QQ c lam n)) ∧ win aR (QQ c lam n) (srcSplitR T V hs t (win aR 0 (QQ c lam n))) = win bR (QQ c lam n) (srcSplitR T V hs u (win bR 0 (QQ c lam n))))
                        theorem MIPRE.Tailored.Intro.LpIntro.sameP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (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) (t : Introspection.AuxType 7 × Bool) (aR bR : Cost.BitStr) (ha : QQ c lam n ≤ List.length aR) (hb : QQ c lam n ≤ List.length bR) :
                        (sameP U t).toFun (envT c lam n T, aR, bR) = sameCons (QQ c lam n) ((2 ^ n) ^ lam) (srcSplitR T V hs) (srcSplitL T V hs) t aR bR

                        Consistency at a label.

                        theorem MIPRE.Tailored.Intro.LpIntro.lenOf_le {T : TailoredVerifier 7} {lam m : ℕ} (hT : T.IsBounded lam) (hm : 2 ≤ m) (x : Cost.BitStr) (κ : Bool) :
                        T.lenOf m x κ ≤ m ^ lam

                        A λ-bounded tailored verifier's lengths are at most m^λ.

                        @[reducible, inline]
                        noncomputable abbrev MIPRE.Tailored.Intro.LpIntro.LL (V : Verifier 7) {n Q : ℕ} (hs : V.sampler.dim (2 ^ n) ≤ Q) :

                        The padded CL functions of the input.

                        Equations
                        Instances For
                          theorem MIPRE.Tailored.Intro.LpIntro.kAt_envT {c lam n : ℕ} (T : TailoredVerifier 7) (V : Verifier 7) (hT : T.IsBounded lam) (hsamp : V.sampler.prog = T.sampler.prog) {X : Type} [Cost.SizedEncoding X] (F : Cost.PolyTimeFun CLData.Input X) (w : Bool) (y : Cost.PolyTimeFun DIn Cost.BitStr) (aR bR : Cost.BitStr) :
                          (kAt F w y).toFun (envT c lam n T, aR, bR) = F.toFun (CLData.context V lam n (QQ c lam n) w, y.toFun (envT c lam n T, aR, bR))
                          theorem MIPRE.Tailored.Intro.LpIntro.sampleP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (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) (ha : QQ c lam n ≤ List.length aR) (hb : QQ c lam n ≤ List.length bR) :
                          (sampleP U w).toFun (envT c lam n T, aR, bR) = sampleCons (QQ c lam n) ((2 ^ n) ^ lam) (srcSplitR T V hs) (srcSplitL T V hs) (LL V hs) w aR bR

                          The sampling comparison.

                          theorem MIPRE.Tailored.Intro.LpIntro.readP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (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) (ha : QQ c lam n ≤ List.length aR) (hb : QQ c lam n ≤ List.length bR) :
                          (readP U w).toFun (envT c lam n T, aR, bR) = readCons (QQ c lam n) ((2 ^ n) ^ lam) (srcSplitR T V hs) (srcSplitL T V hs) w aR bR

                          The reading comparison.

                          theorem MIPRE.Tailored.Intro.LpIntro.outputPrefix_at (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (V : Verifier 7) (hV : V.IsBounded lam) (hn : 1 ≤ n) (hs : V.sampler.dim (2 ^ n) ≤ QQ c lam n) (w : Bool) {k : ℕ} (hk : k ≤ 7) (y : Cost.BitStr) (hy : List.length y = QQ c lam n) (hg : CLData.Guard V hs w (k - 1) (CL.ofBits (QQ c lam n) y)) :
                          (CLData.outputPrefix U k).toFun (CLData.context V lam n (QQ c lam n) w, y) = CL.toBits ((LL V hs w).outputPrefix k (CL.ofBits (QQ c lam n) y))
                          theorem MIPRE.Tailored.Intro.LpIntro.hideReadP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (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) (ha : QQ c lam n ≤ List.length aR) (hb : QQ c lam n ≤ List.length bR) (hga : CLData.Guard V hs w 6 (CL.ofBits (QQ c lam n) (win aR 0 (QQ c lam n)))) (hgb : CLData.Guard V hs w 6 (CL.ofBits (QQ c lam n) (win bR 0 (QQ c lam n)))) :
                          (hideReadP U w).toFun (envT c lam n T, aR, bR) = hideReadCons (QQ c lam n) ((2 ^ n) ^ lam) (LL V hs) w aR bR

                          The last Hide against Read, under the prefix guards at level 6.

                          theorem MIPRE.Tailored.Intro.LpIntro.hideNextP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (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) (k : ℕ) (hk : k + 1 < 7) (aR bR : Cost.BitStr) (ha : QQ c lam n ≤ List.length aR) (hb : QQ c lam n ≤ List.length bR) (hga : CLData.Guard V hs w k (CL.ofBits (QQ c lam n) (win aR 0 (QQ c lam n)))) (hgb : CLData.Guard V hs w (k + 1) (CL.ofBits (QQ c lam n) (win bR 0 (QQ c lam n)))) :
                          (hideNextP U w k).toFun (envT c lam n T, aR, bR) = hideNextCons (QQ c lam n) (LL V hs) (regKerGens (QQ c lam n)) w k aR bR

                          Consecutive Hide levels, under the prefix guards at k and k + 1.

                          theorem MIPRE.Tailored.Intro.LpIntro.envT_idx (c lam n : ℕ) (T : TailoredVerifier 7) :
                          (envT c lam n T).2.2.1 = 2 ^ n
                          theorem MIPRE.Tailored.Intro.LpIntro.length_win_split_le {lam n : ℕ} (T : TailoredVerifier 7) (hT : T.IsBounded lam) (hn : 1 ≤ n) (aR : Cost.BitStr) (o : ℕ) (q : Cost.BitStr) (κ : Bool) :
                          List.length (win aR o (T.lenOf (2 ^ n) q κ)) ≤ (2 ^ n) ^ lam
                          theorem MIPRE.Tailored.Intro.LpIntro.sourceP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (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) (aR bR : Cost.BitStr) (ha : QQ c lam n ≤ List.length aR) (hb : QQ c lam n ≤ List.length bR) :
                          (sourceP U).toFun (envT c lam n T, aR, bR) = sourceCons (QQ c lam n) ((2 ^ n) ^ lam) (srcSplitR T V hs) (srcSplitL T V hs) (Typed.srcCons (kk c lam n) (jj c lam n) T V hs) aR bR

                          The source game's constraints.

                          theorem MIPRE.Tailored.Intro.LpIntro.dirP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (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) (t u : Introspection.AuxType 7 × Bool) (aR bR : Cost.BitStr) (ha : QQ c lam n ≤ List.length aR) (hb : QQ c lam n ≤ List.length bR) (hGa : Typed.G (kk c lam n) (jj c lam n) ((2 ^ n) ^ lam) T V hs t (win aR 0 (QQ c lam n))) (hGb : Typed.G (kk c lam n) (jj c lam n) ((2 ^ n) ^ lam) T V hs u (win bR 0 (QQ c lam n))) :
                          (dirP U t u).toFun (envT c lam n T, aR, bR) = dirAux (QQ c lam n) ((2 ^ n) ^ lam) (srcSplitR T V hs) (srcSplitL T V hs) (LL V hs) (regKerGens (QQ c lam n)) (Typed.srcCons (kk c lam n) (jj c lam n) T V hs) t u aR bR

                          One orientation of the directed checks, under the readable conditions at both registers.

                          theorem MIPRE.Tailored.Intro.LpIntro.auxLenU_envT {c lam n : ℕ} (T : TailoredVerifier 7) (t : Introspection.AuxType 7 × Bool) (aR bR : Cost.BitStr) :
                          (auxLenU t).toFun (envT c lam n T, aR, bR) = Cost.unary (auxLen (QQ c lam n) ((2 ^ n) ^ lam) t.1)
                          theorem MIPRE.Tailored.Intro.LpIntro.auxPairP_spec (U : Cost.ClockedUniversalMachine) {c lam n : ℕ} (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) (t u : Introspection.AuxType 7 × Bool) (aR bR : Cost.BitStr) (ha : List.length aR = auxLenR (QQ c lam n) ((2 ^ n) ^ lam) t.1) (hb : List.length bR = auxLenR (QQ c lam n) ((2 ^ n) ^ lam) u.1) :
                          (auxPairP U t u).toFun (envT c lam n T, aR, bR) = auxPair (QQ c lam n) ((2 ^ n) ^ lam) (srcSplitR T V hs) (srcSplitL T V hs) (LL V hs) (Typed.G (kk c lam n) (jj c lam n) ((2 ^ n) ^ lam) T V hs) (regKerGens (QQ c lam n)) (Typed.srcCons (kk c lam n) (jj c lam n) T V hs) t u aR bR

                          The constraints at a pair of auxiliary labels, for readable answers of the labels' readable lengths.