Constraint graphs on a regular multigraph #
The steps of Dinur's proof after preprocessing Dinur, Section 3 run on constraint
graphs whose underlying multigraph is regular, since this is what makes random walks and the
spectral expansion λ available. A RegularConstraintGraph V D α is a D-regular multigraph on
V, presented by its rotation map (Cslib.RotationMap), together with a constraint on each of its
darts (v, i), the i-th edge at v seen from v: a relation between the label of v and
that of its i-th neighbor. Its constraint graph (toConstraintGraph) has the darts as edges, so
its proportions of violated constraints are taken over the uniform distribution on darts, which is
the stationary distribution of the edges crossed by the random walk.
An undirected edge has two darts, and their constraints are not required to agree. Nothing is lost: an undirected constraint is given by the same relation on both darts, read in the two directions, and the estimates of the proof are stated over darts anyway.
Two regular constraint graphs on the same vertices superpose to their union (union), whose
constraint graph is the union of theirs up to the renaming V × (D ⊕ D') ≃ (V × D) ⊕ (V × D') of
the darts (toConstraintGraph_union). In particular, constraints that always hold may be added on
the edges of a second regular multigraph on the same vertices (addTrivial), as the union with an
unconstrained regular constraint graph. The violated darts are then the same, and the proportion
of violated darts drops by the factor |D| / (|D| + |D'|) (unsatVal_addTrivial). Dinur adds the
edges of an expander in this way, to make the underlying multigraph an expander, and self-loops
(addLoops), which his powering step along walks of a fixed length needs.
Main definitions #
Cslib.PCP.RegularConstraintGraph: a rotation map with a constraint on each dart.Cslib.PCP.RegularConstraintGraph.toConstraintGraph: its constraint graph, whose edges are the darts.Cslib.PCP.RegularConstraintGraph.union: two regular constraint graphs on the same vertices, superposed.Cslib.PCP.RegularConstraintGraph.unconstrained: a rotation map with constraints that always hold.Cslib.PCP.RegularConstraintGraph.addTrivial: the edges of another regular multigraph added, with constraints that always hold.Cslib.PCP.RegularConstraintGraph.addLoops: self-loops added, with constraints that always hold.
Main results #
Cslib.PCP.RegularConstraintGraph.toConstraintGraph_union,Cslib.PCP.RegularConstraintGraph.satisfiable_union_iff: the constraint graph of a union.Cslib.PCP.RegularConstraintGraph.unsatVal_addTrivial,Cslib.PCP.RegularConstraintGraph.satisfiable_addTrivial_iff: adding edges with constraints that always hold scales the value by|D| / (|D| + |D'|)and preserves satisfiability.Cslib.PCP.RegularConstraintGraph.unsatVal_addLoops,Cslib.PCP.RegularConstraintGraph.satisfiable_addLoops_iff: the same for self-loops.
References #
A regular constraint graph: a D-regular multigraph on V, presented by its rotation map,
with a constraint over the alphabet α on each of its darts. The constraint rel (v, i) relates
the label of v to that of its i-th neighbor.
- graph : RotationMap V D
The underlying regular multigraph.
The constraint on a dart
(v, i): a relation between the label ofvand that of itsi-th neighbor.
Instances For
The constraint graph of a regular constraint graph: its edges are the darts, the dart (v, i)
going from v to its i-th neighbor.
Instances For
A labelling satisfies a dart when the labels of its ends satisfy its constraint.
The number of violated darts is the proportion of violated darts times the number |V| |D|
of darts.
The union of two regular constraint graphs on the same vertices: its multigraph is the
union of theirs, the darts inl i at v being those of R and the darts inr j those of R',
and every dart keeps its constraint.
Instances For
The underlying multigraph of a union is the union of the underlying multigraphs.
The darts of R keep their constraints in R.union R'.
The darts of R' keep their constraints in R.union R'.
The constraint graph of a union is the union of the constraint graphs, with its darts
V × (D ⊕ D') renamed to (V × D) ⊕ (V × D').
A union is satisfied by the labellings that satisfy both regular constraint graphs.
The regular constraint graph on the multigraph H whose constraints always hold.
Instances For
An unconstrained regular constraint graph is satisfied by every labelling.
The regular constraint graph R with the edges of H added, carrying constraints that always
hold: its union with the unconstrained regular constraint graph on H.
Instances For
The underlying multigraph of R.addTrivial H is the union of those of R and H.
The darts of R keep their constraints in R.addTrivial H.
The constraints on the added darts always hold.
The darts of R keep their constraints in R.addTrivial H.
The added darts are satisfied by every labelling.
Adding edges with constraints that always hold preserves satisfiability.
Adding edges with constraints that always hold scales the value by
|D| / (|D| + |D'|): the constraint graph of R.addTrivial H is the union of that of R with
|V| |D'| edges that are always satisfied.
The regular constraint graph R with a self-loop added at every vertex for each j : E,
carrying constraints that always hold: its underlying multigraph is R.graph.addLoops E.
Instances For
Adding self-loops with constraints that always hold preserves satisfiability.
Adding self-loops with constraints that always hold scales the value by
|D| / (|D| + |E|).