Decoding a killed-power assignment #
An assignment of the killed power labels each vertex with opinions that need not be consistent with one another. Soundness decodes it into a single assignment of the original system, by plurality, and counts the failed walk constraints against that.
The opinion about v that a killed walk out of v reports is the one its far
end holds, read at the reversed walk — the walk that leads back from that end to
v. Letting the killed walk range over all deg ^ T * q ^ T labels gives a
multiset of opinions about v, and kPlurality picks a most frequent one.
This is the distribution the soundness argument needs, and the reason for the killed walk law: conditioned on a walk crossing a given dart, its prefix and its suffix are independent killed walks out of that dart's two ends, each governed by exactly this law. So the plurality bound applies to both ends at once, and the two bounds multiply.
Main definitions #
RegCSP.kOpinionAbout— what the far end of a killed walk says about its startRegCSP.kOpinionCount,RegCSP.kPlurality— the decoded assignmentRegCSP.opinionOf— the report as a function of the effective walk aloneRegCSP.card_fibre_opinion— the reports of one effective length, counted as walks times the fibre weightRegCSP.kOpinionCount_eq_sum— the reports split by effective lengthRegCSP.truthCount,RegCSP.card_le_mul_sum_truthCount— plurality restated as a weighted sum over the walks out of a vertex
Main results #
RegCSP.card_le_card_mul_kOpinionCount— the plurality is reported by at least a1 / |α|fraction of the killed walks out of a vertex
What the far end of the killed walk x out of v says about v: its
opinion read at the reversed walk, which leads from that end back to v.
Equations
Instances For
The opinion reported by a killed walk, as a function of its effective length
and effective walk alone. Everything the report depends on — where the walk ends
and the reversed walk it is read at — is determined by those two, so the labels
past the stopping index are free. That is what makes each effective walk carry
the weight card_killed_fibre computes.
Instances For
Two effective walks of the same length with the same labels give the same
report. Stated with the length as a hypothesis rather than by rewriting, since
the walk's type mentions it: subst does the transport that rw cannot.
On the fibre of effective length m, the report is the one determined by
the length-m prefix.
How many killed walks out of v ascribe the value a to it.
Equations
- R.kOpinionCount q T hq A v a = {x : R.KLabels q T | R.kOpinionAbout q T hq A v x = a}.card
Instances For
The fibre partition. Among the killed walks of effective length m,
those reporting val are exactly the ones whose effective walk reports val,
each carrying the same weight. So the count splits into a count of walks times
that weight.
The plurality decoding: every vertex is given a value that the ends of the killed walks out of it ascribe to it most often.
Equations
- R.kPlurality q T hq A v = Classical.choose ⋯
Instances For
Pigeonhole. At least a 1 / |α| fraction of the killed walks out of v
report the decoded value.
The reports split by effective length.
How many length-m walks out of v have a far end reporting the decoded
value. Total in m, so that sums over lengths need no side conditions.
Equations
- R.truthCount q T hq A v m = if hm : m ≤ T then {w : Fin m → R.graph.D | R.opinionOf q T hq A v hm w = R.kPlurality q T hq A v}.card else 0
Instances For
Plurality, in terms of walks. At least a 1 / |α| fraction of all
killed-walk labels report the decoded value, and splitting that count by
effective length turns it into a statement about the walks out of v: the
weighted sum of truthCount is large, up to the exponentially small truncation
term of walks that never stop.
This is the form the first moment consumes, since the crossing decomposition produces exactly these weighted sums — one for the prefix and one for the suffix, with independent lengths.
The decoded assignment of the original system.
Equations
- R.kDecode q T hq A v = R.kPlurality q T hq A v