Charging disagreement inside a cloud #
The soundness half of Dinur's degree reduction, one cloud at a time.
An assignment of the reduced system labels half-edges, not vertices. It is
decoded back to a vertex assignment by plurality: decode A v is a label
that at least a 1 / card α fraction of v's cloud agrees with. The
half-edges of the cloud that disagree form a set the cloud's expander must
charge for: by edge expansion, the disagreeing set sends out many cloud-links,
and every one of them joins two half-edges with different labels, so every one
of them is an unsatisfied constraint.
Everything is phrased at the level of a cloud's enumeration cloudList v, so
that the expander family — which lives on Fin n — applies directly, with
cloudRot_getElem as the only bridge back to half-edges.
Main definitions #
ConstraintGraph.decode— the plurality label of a cloudConstraintGraph.devIdx— the indices of a cloud that disagree with itConstraintGraph.cloudUnsat— the unsatisfied cloud-links sitting at a vertex
Main results #
ConstraintGraph.length_le_card_agree— plurality: the agreeing part of a cloud is at least a1 / card αfraction of itConstraintGraph.card_dartsBetween_le_card_cloudUnsat— every expander boundary dart of the disagreeing set is an unsatisfied cloud-linkConstraintGraph.cloud_disagreement_bound— the resulting charge:(1 - lam) · degree · |dev| / card αunsatisfied links atvConstraintGraph.total_cloud_charge— summed over the vertices, since the clouds' bills never overlap
Plurality decoding #
The plurality label of v's cloud: a label at least a 1 / card α
fraction of the cloud agrees with.
Equations
- G.decode A v = Classical.choose ⋯
Instances For
The indices of v's cloud whose labels disagree with the plurality.
Instances For
Plurality. The part of a cloud agreeing with its decoded label is at
least a 1 / card α fraction of the cloud.
From cloud indices to half-edges #
A cloud's filtered subset is the image of the corresponding index set.
Counting inside a cloud is the same through its enumeration.
The half-edges whose label disagrees with their vertex's decoded label.
Instances For
A cloud's disagreeing indices count the same as its disagreeing half-edges.
Summed over the vertices, the cloud charges account for every disagreeing half-edge exactly once.
Unsatisfied cloud-links #
The unsatisfied cloud-links of the reduced system sitting at v.
Equations
- G.cloudUnsat E A v = {x ∈ (G.reduce E).unsatDarts A | G.owner x.1 = v ∧ x.2 ≠ none}
Instances For
The clouds' unsatisfied links are disjoint: a dart's tail determines the vertex it sits at.
Every boundary dart of the disagreeing set is an unsatisfied cloud-link: its two ends carry different labels, one being the plurality and one not.
The charge #
The cloud charge. The disagreeing part of v's cloud is billed
(1 - lam) · degree / card α unsatisfied cloud-links per disagreeing
half-edge.
The total charge #
The clouds' unsatisfied links are disjoint subsets of all the unsatisfied darts, so their counts add up to at most the whole.
The total cloud charge. Every disagreeing half-edge is billed
(1 - lam) · degree / card α unsatisfied cloud-links, and the bills for
different vertices never overlap.