Hardness of the feedback problems #
Two quantifier-free first-order reductions, both of dimension 1:
DescriptiveComplexity.vertexCover_fo_reduction_feedbackVertexSet: Vertex Cover reduces to Feedback Vertex Set, by symmetrizing the adjacency relation off the diagonal (DescriptiveComplexity.symmetrizeInterp, tagUnit). Every edge of the input becomes a 2-cycle, so a set of vertices kills every cycle iff it meets every edge – killing all 2-cycles already removes every arc (DescriptiveComplexity.coverOn_iff_feedbackOn). The marked set is copied, so there is no counting step at all.DescriptiveComplexity.feedbackVertexSet_fo_reduction_feedbackArcSet: Feedback Vertex Set reduces to Feedback Arc Set, by the classical vertex splitting (DescriptiveComplexity.splitInterp, tagBool): each vertexvbecomes an in-copyDescriptiveComplexity.inPtand an out-copyDescriptiveComplexity.outPtjoined by an internal arc, and each arc(u, v)of the input becomes the crossing arc fromu's out-copy tov's in-copy. Cutting the internal arc ofvis deleting the vertexv; the marked relation marks exactly the internal arcs of the marked vertices, so the threshold is preserved on the nose.
Splitting, without ever manipulating a cycle #
The correctness of the splitting is where the certificate form of acyclicity
(DescriptiveComplexity.acyclicRel_iff_exists_order) pays off: both directions build a
strict partial order out of another one, and no cycle is ever decomposed.
- Forward, a feedback vertex set
Cof the input with certificate orderLtgives the orderDescriptiveComplexity.splitLt: the out-copies ofCgo to the bottom, the in-copies ofCto the top, and everything else keepsLt(with the in-copy of a vertex just below its out-copy). Every uncut arc goes forward in it – the case that needsLtis exactly a crossing arc between two vertices outsideC, which is a surviving arc of the input. - Backward, a feedback arc set
Fof the split graph gives back the set of source vertices of the arcs inF, which is no larger (Set.ncard_image_le), and the orderfun u v => Lt' (inPt u) (inPt v). For an input arc(u, v)with both endpoints outside that set, neither the internal arc ofunor the crossing arc(u_out, v_in)can be inF, since both have source vertexu; so both go forward inLt', and transitivity closes the case.
Vertex Cover reduces to Feedback Vertex Set #
The symmetrizing interpretation: adjacency becomes off-diagonal adjacency in either direction – so every edge becomes a 2-cycle – and marks are kept.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The symmetrizing interpretation is quantifier-free.
Dependency graph
Dependency graph
Dependency graph
Correctness of the symmetrizing interpretation.
Dependency graph
Vertex Cover FO-reduces to Feedback Vertex Set, by symmetrizing the adjacency relation: every edge becomes a 2-cycle, so the feedback vertex sets are exactly the vertex covers.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Feedback Vertex Set reduces to Feedback Arc Set #
The vertex-splitting interpretation: the tag true carries the in-copy of a
vertex and the tag false its out-copy.
The vertex-splitting interpretation: v becomes an in-copy and an
out-copy joined by an internal arc, an arc (u, v) becomes the crossing arc
from u's out-copy to v's in-copy, and the marked relation marks the
internal arcs of the marked vertices.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The vertex-splitting interpretation is quantifier-free.
Dependency graph
The two copies of a vertex #
The in-copy of a vertex in the split digraph.
Instances For
Dependency graph
The out-copy of a vertex in the split digraph.
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The arcs and marks of the split digraph #
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The interface used by the correctness proofs #
Rather than the raw characterizations, the proofs below use the two arc constructors and the two “only these” lemmas, which never mention the shape of an element of the interpreted universe.
The internal arc of a vertex.
Dependency graph
The crossing arc attached to an arc of the input.
Dependency graph
The arcs of the split digraph are the internal and the crossing ones.
Dependency graph
The marked arcs of the split digraph are the internal arcs of the marked vertices.
Dependency graph
The internal arc of a marked vertex is marked.
Dependency graph
Counting on the internal arcs #
A relation on the split universe that only holds of internal arcs encodes the same number as the set of vertices whose internal arc it holds of.
Dependency graph
Correctness of the splitting #
The arcs cut by the interpretation for a set C of vertices: the internal
arcs of the members of C.
Equations
- DescriptiveComplexity.cutArcs C p q = ∃ (v : A), C v ∧ p = DescriptiveComplexity.inPt v ∧ q = DescriptiveComplexity.outPt v
Instances For
Dependency graph
The level of a copy in the order built from a feedback vertex set: the out-copies of removed vertices go to the bottom, their in-copies to the top, everything else in between.
Instances For
Dependency graph
The order on the split digraph built from a certificate order of the input: levels first, then the input order, with the in-copy of a vertex just below its out-copy.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Correctness of the vertex splitting: a graph has a feedback vertex set at most as large as its marked set iff the split digraph has a feedback arc set at most as large as its marked relation.
Dependency graph
Feedback Vertex Set FO-reduces to Feedback Arc Set, by vertex splitting: deleting a vertex becomes cutting its internal arc.
Equations
- One or more equations did not get rendered due to their size.