The queries of a copy of the PCP sampler, run by run #
Piece AR-3d of planning/answer-reduction.md. A copy of the seeded test in the PCP sampler is a
run [o, o + sz) of the concatenated registers with a seed c (regsAt). This file writes
what its presentation's queries return in the three runs of MIPRE/Background/AnswerReduction/ Layout (ptOf6, dirOf6, seedsOf), which is the form a program computes:
- the marginals (
comps_marginal): the seed on the seed run, the cut-down direction placed atoon the direction run for a diagonal line, the line's base point placed atoon the point run; - the stage maps from a prefix (
comps_map_zero,comps_map_one,comps_map_two); - the factor spaces, run by run (
mem_coordSet_*,mem_dirSet_*,mem_finalSet_*).
Placing and slicing vectors #
The runs of the three kinds of vectors a copy writes #
@[simp]
@[simp]
@[simp]
theorem
MIPRE.AnswerReduction.Pcp.mem_coordSet_coord
(P : SAT.PcpParams)
(o sz : ℕ)
(c : Fin 6)
(h : o + sz ≤ P.m')
(c' : Fin 6)
:
theorem
MIPRE.AnswerReduction.Pcp.mem_dirSet_coord
(P : SAT.PcpParams)
(o sz : ℕ)
(c : Fin 6)
(h : o + sz ≤ P.m')
(c' : Fin 6)
:
Coord.coord c' ∉ (regsAt P o sz c h).dirSet
theorem
MIPRE.AnswerReduction.Pcp.mem_finalSet_coord
(P : SAT.PcpParams)
(o sz : ℕ)
(c : Fin 6)
(h : o + sz ≤ P.m')
(c' : Fin 6)
:
The queries, run by run #
The three runs of a vector.
Equations
Instances For
def
MIPRE.AnswerReduction.Pcp.seedPart
{F : Type u_1}
[Field F]
(c : Fin 6)
(t : LIDT.CL.Ty)
(s : F)
:
Fin 6 → F
The seed run of a line type's first stage.
Equations
- MIPRE.AnswerReduction.Pcp.seedPart c t s = if t = MIPRE.LIDT.CL.Ty.point then 0 else Pi.single c s
Instances For
def
MIPRE.AnswerReduction.Pcp.dirPart
{F : Type u_1}
[Field F]
(sz : ℕ)
[Fintype F]
[DecidableEq F]
[NeZero sz]
{hsz : sz ∣ Fintype.card F}
(S : LIDT.CL.Sel F sz hsz)
(t : LIDT.CL.Ty)
(s : F)
(d : Fin sz → F)
:
Fin sz → F
The direction a diagonal line type's second stage writes, before placing.
Equations
- MIPRE.AnswerReduction.Pcp.dirPart sz S t s d = if t = MIPRE.LIDT.CL.Ty.dline then MIPRE.LIDT.CL.zeroBelow (S.χ s) d else 0
Instances For
theorem
MIPRE.AnswerReduction.Pcp.comps_secondLin
(P : SAT.PcpParams)
{F : Type u_1}
[Field F]
(o sz : ℕ)
(c : Fin 6)
(h : o + sz ≤ P.m')
[Fintype F]
[DecidableEq F]
[NeZero sz]
{hsz : sz ∣ Fintype.card F}
(S : LIDT.CL.Sel F sz hsz)
(t : LIDT.CL.Ty)
(s : F)
(x : Coord P → F)
:
theorem
MIPRE.AnswerReduction.Pcp.comps_marginal
(P : SAT.PcpParams)
{F : Type u_1}
[Field F]
(o sz : ℕ)
(c : Fin 6)
(h : o + sz ≤ P.m')
[Fintype F]
[DecidableEq F]
[NeZero sz]
{hsz : sz ∣ Fintype.card F}
(S : LIDT.CL.Sel F sz hsz)
(t : LIDT.CL.Ty)
{j : ℕ}
(hj : 1 ≤ j)
(x : Coord P → F)
:
comps P ((CL.CLFun.truncate j ((regsAt P o sz c h).pres S t)).eval x) = (if 3 ≤ j then
placeV o
((LIDT.CL.Regs.ptMap S t (seedsOf P x c) (dirPart sz S t (seedsOf P x c) (sliceV o sz h (dirOf6 P x))))
(sliceV o sz h (ptOf6 P x)))
else 0, if 2 ≤ j then placeV o (dirPart sz S t (seedsOf P x c) (sliceV o sz h (dirOf6 P x))) else 0, seedPart c t (seedsOf P x c))
The marginals, run by run, from the first level on.
theorem
MIPRE.AnswerReduction.Pcp.comps_map_zero
(P : SAT.PcpParams)
{F : Type u_1}
[Field F]
(o sz : ℕ)
(c : Fin 6)
(h : o + sz ≤ P.m')
[Fintype F]
[DecidableEq F]
[NeZero sz]
{hsz : sz ∣ Fintype.card F}
(S : LIDT.CL.Sel F sz hsz)
(t : LIDT.CL.Ty)
(u y : Coord P → F)
:
The first stage map, run by run.
theorem
MIPRE.AnswerReduction.Pcp.comps_map_one
(P : SAT.PcpParams)
{F : Type u_1}
[Field F]
(o sz : ℕ)
(c : Fin 6)
(h : o + sz ≤ P.m')
[Fintype F]
[DecidableEq F]
[NeZero sz]
{hsz : sz ∣ Fintype.card F}
(S : LIDT.CL.Sel F sz hsz)
(t : LIDT.CL.Ty)
(u y : Coord P → F)
:
The second stage map, run by run.
theorem
MIPRE.AnswerReduction.Pcp.comps_map_two
(P : SAT.PcpParams)
{F : Type u_1}
[Field F]
(o sz : ℕ)
(c : Fin 6)
(h : o + sz ≤ P.m')
[Fintype F]
[DecidableEq F]
[NeZero sz]
{hsz : sz ∣ Fintype.card F}
(S : LIDT.CL.Sel F sz hsz)
(t : LIDT.CL.Ty)
(u y : Coord P → F)
:
The third stage map, run by run.