Documentation

MIPRE.Background.AnswerReduction.Layout

The layout of the PCP coordinates #

Piece AR-3d of planning/answer-reduction.md: how a program reads a vector of V^pcp.

The concatenated registers #

theorem MIPRE.AnswerReduction.Pcp.dir6_block (P : SAT.PcpParams) (i : Fin 5) (j : Fin P.m) :
dir6 P ⟨↑i * P.m + ↑j, ⋯⟩ = Coord.dir i j
theorem MIPRE.AnswerReduction.Pcp.pt6_aux (P : SAT.PcpParams) (j : Fin (5 + P.s)) :
pt6 P ⟨5 * P.m + ↑j, ⋯⟩ = Coord.auxPt j

A copy of the test as a run of the concatenated registers #

def MIPRE.AnswerReduction.Pcp.regsAt (P : SAT.PcpParams) (o sz : ℕ) (c : Fin 6) (h : o + sz ≤ P.m') :

The registers of a copy at offset o and length sz of the concatenated registers, with the seed c.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem MIPRE.AnswerReduction.Pcp.regs_eq (P : SAT.PcpParams) (i : Fin 5) :
    regs P i = regsAt P (↑i * P.m) P.m i.castSucc ⋯

    The three runs #

    def MIPRE.AnswerReduction.Pcp.ptOf6 (P : SAT.PcpParams) {F : Type u_1} (x : Coord P → F) :
    Fin P.m' → F

    The concatenated point register of a vector.

    Equations
    Instances For
      def MIPRE.AnswerReduction.Pcp.dirOf6 (P : SAT.PcpParams) {F : Type u_1} (x : Coord P → F) :
      Fin P.m' → F

      The concatenated direction register of a vector.

      Equations
      Instances For
        def MIPRE.AnswerReduction.Pcp.seedsOf (P : SAT.PcpParams) {F : Type u_1} (x : Coord P → F) :
        Fin 6 → F

        The six seeds of a vector.

        Equations
        Instances For

          The three runs of the coordinates.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[reducible, inline]

            The number of coordinates of V^pcp, in the three runs.

            Equations
            Instances For

              The numbering of the coordinates: V_{6,pt}, then V_{6,dir}, then the seeds.

              Equations
              Instances For
                theorem MIPRE.AnswerReduction.Pcp.ofFn_coordIndex (P : SAT.PcpParams) {α : Type u_2} (g : Coord P → α) :
                (List.ofFn fun (r : Fin (pcpDim P)) => g ((coordIndex P).symm r)) = ((List.ofFn fun (r : Fin P.m') => g (pt6 P r)) ++ List.ofFn fun (r : Fin P.m') => g (dir6 P r)) ++ List.ofFn fun (c : Fin 6) => g (Coord.coord c)

                Reading a vector in the numbering is reading its three runs.

                The bits of a downsized vector #

                The numbering of the bits: coordinate by coordinate, k bits each.

                Equations
                Instances For
                  noncomputable def MIPRE.AnswerReduction.Pcp.flatBits (P : SAT.PcpParams) {k : ℕ} (hk : 1 ≤ k) (v : Coord P → (SAT.shoupBinField k hk).carrier) :

                  The Shoup bits of a vector of V^pcp, in the numbering.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem MIPRE.AnswerReduction.Pcp.repr_shoup {k : ℕ} (hk : 1 ≤ k) (a : (SAT.shoupBinField k hk).carrier) :
                    (List.ofFn fun (j : Fin k) => decide (((SAT.shoupPowerBasis k hk).repr a) j = 1)) = (SAT.shoupBinField k hk).toBits a
                    theorem MIPRE.AnswerReduction.Pcp.bitIndex_symm (P : SAT.PcpParams) {k : ℕ} (r : Fin (pcpDim P)) (j : Fin k) (h : ↑r * k + ↑j < pcpDim P * k) :
                    (bitIndex P k).symm ⟨↑r * k + ↑j, h⟩ = ((coordIndex P).symm r, j)

                    The bits of the downsized vector are its coordinates' Shoup bits, in the numbering.

                    theorem MIPRE.AnswerReduction.Pcp.exists_flatBits (P : SAT.PcpParams) {k : ℕ} (hk : 1 ≤ k) {z : Cost.BitStr} (hz : List.length z = pcpDim P * k) :
                    ∃ (v : Coord P → (SAT.shoupBinField k hk).carrier), z = flatBits P hk v

                    Every bit string of the right length is the bits of a vector of V^pcp.