Linear systems over F₂: purification, triangulation and decoupling #
Slice P4a of the Aldous–Lyons track (planning/aldous-lyons-track.md, §5 "Phase 4 slices"):
the transformations of a system of linear equations that paper II's answer reduction applies
before its PCP (II:7751–8316). The output indicator L* (II:8381) computes them from the
constraints of the input game, and the PCP checks the result.
Eqn: an equation∑_{v ∈ vars} X_v = rhsoverF₂, on variables indexed byℕ.pureEqn(eq:purified_equation, II:7762): a constraint of the canonical decider on the answersa = a^R a^L,b = b^R b^Lbecomes an equation on the linear answers alone, the readable values moved to the right-hand side, the linear answers placed in a table of2Lentries (a^Lat0,b^LatL).accepts_iff_pure: the tailored game accepts exactly when the purified equations hold of the table. The paper purifies the input verifier first (II:7783); here the indicator purifies on the fly, so the input is not transformed.triangle(II:7952): each equationX_{x₀} + ⋯ + X_{x_{k-1}} = bbecomes the chainX_{x₀} = Y₀,Y_{i-1} + X_{xᵢ} = Yᵢ,Y_{k-1} = bof equations in at most three variables, each row with its own fresh variablesY(yv).extextends an assignment to the fresh variables by the partial sums, a linear map (extis a sum overextVars);triangle_completeandtriangle_soundare the correspondence of solutions (rem:prop_triangulated_system).decInd(II:8193, and the indicator encoding of II:8128): the 5-decoupled system on the blocksS_A, S_B, S₁, S₂, S₃, the last three copies of all the variables, as the indicator of the equationsε_A X_A + ε_B X_B + ε₁ X¹ + ε₂ X² + ε₃ X³ = ε₀it contains; a block whose sign is0takes any index.decSat_iffreads off what a solution is.extend_complete,decSat_sound(cor:triang_and_decoupling_extend): a solutionfgives the solution(f, f(ℓ_A + ·), ext f, ext f, ext f)of the decoupled triangulated system, and the first two blocks of any solution glue to a solution of the original system.accepts_iff_decSatandaccepts_of_decSatare the two directions for the canonical decider (claim:properties_of_L*, item 2).
Bits as elements of F₂ #
The bit of s at i as an element of F₂, 0 past the end.
Equations
Instances For
The F₂ inner product of two strings of the same length, as a sum.
A sum over the positions of a filtered range.
Equations #
Purification #
The positions j < k at which c has a one at o + j.
Equations
- MIPRE.Tailored.AnsRed.onesFrom c o k = List.filter (fun (j : ℕ) => List.getD c (o + j) false) (List.range k)
Instances For
The linear answers placed in a table of 2L entries: a^L at 0, b^L at L.
Equations
- MIPRE.Tailored.AnsRed.tbl L aL bL v = if v < L then MIPRE.Tailored.AnsRed.bitAt aL v else MIPRE.Tailored.AnsRed.bitAt bL (v - L)
Instances For
The purified equation of a constraint c (eq:purified_equation): the constraint on the
answers a^R a^L (lengths lRx, lLx) and b^R b^L (lengths lRy, lLy) and the affine
coordinate becomes an equation on the table tbl L a^L b^L of the linear answers, the readable
answers a^R, b^R entering the right-hand side. A constraint of the wrong length, which the
canonical decider rejects, becomes 0 = 1.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Purification is exact (fact:completeness_and_soundness_purification, at one pair of answers): the constraint holds of the answers exactly when its purified equation holds of the table of their linear parts.
The canonical decider, purified: a tailored game accepts answers a^R a^L, b^R b^L of
the right lengths exactly when the purified equations of its constraints hold of the table of
the linear answers.
Triangulation #
The fresh variable Y_{r,i} of the triangulation: rows of stride N after the N original
variables.
Equations
- MIPRE.Tailored.AnsRed.yv N r i = N + r * N + i
Instances For
The triangulated system (II:7952): the rows triangulated one by one.
Equations
- MIPRE.Tailored.AnsRed.triangle N rows = (List.mapIdx (fun (r : ℕ) (e : MIPRE.Tailored.AnsRed.Eqn) => MIPRE.Tailored.AnsRed.triRow N r e) rows).flatten
Instances For
The variables whose sum is the extended assignment at v: v itself below N, the prefix
x₀, …, xᵢ of the r-th row at Y_{r,i}, nothing elsewhere.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The extension of an assignment to the triangulation variables (rem:prop_triangulated_system,
item 1): the partial sums along each row. It is linear, being a sum over extVars.
Equations
- MIPRE.Tailored.AnsRed.ext N rows f v = (List.map f (MIPRE.Tailored.AnsRed.extVars N rows v)).sum
Instances For
Triangulation is complete: the extension of a solution solves the triangulated system,
when the rows have at most N variables, all below N.
Decoupling #
The indicator of the 5-decoupled system (II:8193, encoded as in II:8128): whether the
equation ε_A X_A(u_A) + ε_B X_B(u_B) + ε₁ X¹(u₁) + ε₂ X²(u₂) + ε₃ X³(u₃) = ε₀ is in the system
on the blocks S_A = [ℓ_A], S_B = [ℓ_B] and three copies S₁, S₂, S₃ of [ℓ], whose
equations are X_A = X¹ on S_A, X_B = X¹(ℓ_A + ·) on S_B, X¹ = X² and X² = X³ on
[ℓ], and each triangulated equation of tris on the three copies. A block whose sign is 0
takes any index.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- MIPRE.Tailored.AnsRed.instDecidableDecInd ℓA ℓB ℓ tris uA uB u₁ u₂ u₃ εA εB ε₁ ε₂ ε₃ ε₀ = id inferInstance
Five assignments satisfy the decoupled system (fact:polynomial_condition_for_satisfiability): every equation of the indicator holds.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Triangulation and decoupling together #
Extend is complete (cor:triang_and_decoupling_extend): a solution f of R rows of at
most N = ℓ_A + ℓ_B variables, all below N, gives the solution
(f, f(ℓ_A + ·), ext f, ext f, ext f) of the decoupled triangulated system with Δ ≥ R N
triangulation variables. The last three blocks are linear in f (ext).
Every solution of the decoupled triangulated system comes from a solution of the original (cor:triang_and_decoupling_extend): its first two blocks, glued, solve the rows.
The canonical decider, decoupled #
The purified equations of a pair of questions, with the linear answers in tables of L
entries.
Equations
- MIPRE.Tailored.AnsRed.pureRows G L x y aR bR = List.map (MIPRE.Tailored.AnsRed.pureEqn (G.lenR x) (G.lenL x) (G.lenR y) (G.lenL y) L aR bR) (G.cons x y aR bR)
Instances For
The canonical decider, triangulated and decoupled (claim:properties_of_L*, item 2, one
direction): answers of the right lengths that the game accepts give the solution Extend of the
table of their linear parts of the decoupled triangulated purified system, with Δ at least the
number of constraints times 2L.
The linear answer of length k read from a block.
Equations
- MIPRE.Tailored.AnsRed.readBlock k f = List.ofFn fun (j : Fin k) => MIPRE.LowDegree.BinaryLinear.bit (f ↑j)
Instances For
The canonical decider from a solution of the decoupled system (claim:properties_of_L*,
item 2, the other direction): if five assignments solve the decoupled triangulated purified
system of the readable answers, with Δ at least the number of constraints times 2L, the
game accepts the readable answers completed by the first two blocks, read at the linear lengths.