Documentation

DescriptiveComplexity.Problems.Feedback.Defs

Feedback Vertex Set and Feedback Arc Set: definitions #

The two feedback problems of Karp 1972 on directed graphs – the adjacency relation of a structure is an arbitrary binary relation, so a FirstOrder.Language.markedGraph-structure already is a digraph:

Acyclicity, and why it stays first-order checkable #

Acyclicity is a transitive-closure condition (DescriptiveComplexity.AcyclicRel: no vertex is reachable from itself along a nonempty path, Relation.TransGen supplying “nonempty path”), so it is not first-order. It is however equivalent to the existence of a strict partial order containing every surviving arc (DescriptiveComplexity.acyclicRel_iff_exists_order) – the order being the transitive closure itself in the interesting direction. Guessing that order alongside the removed set is what puts both problems in Σ₁ (DescriptiveComplexity.Problems.Feedback.Membership), and it is also what makes the reduction of DescriptiveComplexity.Problems.Feedback.Reductions provable without any manipulation of cycles: each direction builds an order from another one.

Both problems are instances of the same generic property of a relation on a type – DescriptiveComplexity.FeedbackOn removes vertices, DescriptiveComplexity.FeedbackArcOn removes arcs – with the same acyclicity kit underneath, which is what the shared certificate lemmas exploit.

Self-loops are cycles under this reading, as they should be: a self-loop at a vertex forces that vertex (resp. that arc) into the removed set.

Relation symbols of the language of arc-marked digraphs.

Instances For
    Dependency graph
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Dependency graph
      Dependency graph

      The relational language of arc-marked digraphs: a digraph together with a marked binary relation, whose cardinality (as a set of pairs) serves as threshold.

      Equations
      Instances For
        Dependency graph
        Dependency graph
        @[reducible, inline]

        The adjacency symbol of arc-marked digraphs.

        Equations
        Instances For
          Dependency graph
          @[reducible, inline]

          The mark symbol of arc-marked digraphs.

          Equations
          Instances For
            Dependency graph

            Acyclicity and its first-order certificate #

            def DescriptiveComplexity.AcyclicRel {A : Type} (R : AAProp) :

            A relation is acyclic if no element is reachable from itself along a nonempty path.

            Equations
            Instances For
              Dependency graph
              theorem DescriptiveComplexity.acyclicRel_iff_exists_order {A : Type} (R : AAProp) :
              AcyclicRel R ∃ (Lt : AAProp), (∀ (x y z : A), Lt x yLt y zLt x z) (∀ (x : A), ¬Lt x x) ∀ (a b : A), R a bLt a b

              Acyclicity is first-order certifiable: a relation is acyclic exactly when some strict partial order contains it. The order is the transitive closure in one direction; in the other, a cycle would give Lt x x. This is what a Σ₁ definition guesses, and what the reductions between the two feedback problems build.

              Dependency graph
              theorem DescriptiveComplexity.AcyclicRel.of_equiv {A B : Type} (u : B A) {RB : BBProp} {RA : AAProp} (hR : ∀ (a a' : A), RA a a'RB (u.symm a) (u.symm a')) (h : AcyclicRel RB) :

              Acyclicity transports along an equivalence commuting with the two relations.

              Dependency graph

              The generic properties #

              def DescriptiveComplexity.SurvivingArc {A : Type} (Adjp : AAProp) (Cp : AProp) (a b : A) :

              An arc surviving the removal of the Cp-vertices: both endpoints are outside Cp and the arc is present.

              Equations
              Instances For
                Dependency graph
                def DescriptiveComplexity.UncutArc {A : Type} (Adjp Fp : AAProp) (a b : A) :

                An arc surviving the removal of the Fp-arcs: the arc is present and not removed.

                Equations
                Instances For
                  Dependency graph
                  def DescriptiveComplexity.FeedbackOn {A : Type} (Adjp : AAProp) (Kp : AProp) :

                  Some set of vertices whose removal makes the digraph acyclic is at most as large as the number encoded by the Kp-marked elements: “some feedback vertex set is at most as large as the marked set”.

                  Equations
                  Instances For
                    Dependency graph
                    def DescriptiveComplexity.FeedbackArcOn {A : Type} (Adjp Kp : AAProp) :

                    Some set of arcs whose removal makes the digraph acyclic is at most as large as the number encoded by the Kp-marked pairs: “some feedback arc set is at most as large as the marked relation”.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      Dependency graph

                      The certified forms #

                      The shape the second-order definitions guess: the removed set (of vertices or of arcs), a strict partial order certifying that what survives is acyclic, and an injection into the marked set (resp. the marked relation) witnessing the threshold.

                      theorem DescriptiveComplexity.feedbackOn_iff_certificate {A : Type} [Finite A] (Adjp : AAProp) (Kp : AProp) :
                      FeedbackOn Adjp Kp ∃ (C : AProp), (∃ (Lt : AAProp), (∀ (x y z : A), Lt x yLt y zLt x z) (∀ (x : A), ¬Lt x x) ∀ (a b : A), SurvivingArc Adjp C a bLt a b) Nonempty ({ x : A // C x } { x : A // Kp x })

                      The feedback-vertex-set property, with acyclicity certified by an order and the threshold by an injection.

                      Dependency graph
                      theorem DescriptiveComplexity.feedbackArcOn_iff_certificate {A : Type} [Finite A] (Adjp Kp : AAProp) :
                      FeedbackArcOn Adjp Kp ∃ (F : AAProp), (∃ (Lt : AAProp), (∀ (x y z : A), Lt x yLt y zLt x z) (∀ (x : A), ¬Lt x x) ∀ (a b : A), UncutArc Adjp F a bLt a b) Nonempty ({ p : A × A // F p.1 p.2 } { p : A × A // Kp p.1 p.2 })

                      The feedback-arc-set property, with acyclicity certified by an order and the threshold by an injection of pairs.

                      Dependency graph

                      Transport along equivalences #

                      theorem DescriptiveComplexity.FeedbackOn.of_equiv {A B : Type} (u : B A) {AdjB : BBProp} {KB : BProp} {AdjA : AAProp} {KA : AProp} (hadj : ∀ (b b' : B), AdjB b b' AdjA (u b) (u b')) (hK : ∀ (b : B), KB b KA (u b)) (h : FeedbackOn AdjB KB) :
                      FeedbackOn AdjA KA

                      FeedbackOn transports along an equivalence commuting with the two predicates.

                      Dependency graph
                      theorem DescriptiveComplexity.FeedbackArcOn.of_equiv {A B : Type} (u : B A) {AdjB KB : BBProp} {AdjA KA : AAProp} (hadj : ∀ (b b' : B), AdjB b b' AdjA (u b) (u b')) (hK : ∀ (b b' : B), KB b b' KA (u b) (u b')) (h : FeedbackArcOn AdjB KB) :

                      FeedbackArcOn transports along an equivalence commuting with the two relations.

                      Dependency graph
                      theorem DescriptiveComplexity.FeedbackOn.equiv_iff {A B : Type} (u : B A) {AdjB : BBProp} {KB : BProp} {AdjA : AAProp} {KA : AProp} (hadj : ∀ (b b' : B), AdjB b b' AdjA (u b) (u b')) (hK : ∀ (b : B), KB b KA (u b)) :
                      FeedbackOn AdjB KB FeedbackOn AdjA KA

                      FeedbackOn transports along an equivalence, iff version.

                      Dependency graph
                      theorem DescriptiveComplexity.FeedbackArcOn.equiv_iff {A B : Type} (u : B A) {AdjB KB : BBProp} {AdjA KA : AAProp} (hadj : ∀ (b b' : B), AdjB b b' AdjA (u b) (u b')) (hK : ∀ (b b' : B), KB b b' KA (u b) (u b')) :

                      FeedbackArcOn transports along an equivalence, iff version.

                      Dependency graph

                      Vertex covers are feedback vertex sets of the symmetrized graph #

                      theorem DescriptiveComplexity.coverOn_iff_feedbackOn {A : Type} (Adjp : AAProp) (Kp : AProp) :
                      CoverOn Adjp Kp FeedbackOn (fun (x y : A) => x y (Adjp x y Adjp y x)) Kp

                      The reduction of Vertex Cover, semantically: a set meets every edge of a digraph iff it kills every cycle of the digraph symmetrized off the diagonal. Killing all 2-cycles already removes every arc, which is why no cycle of any length survives.

                      Dependency graph

                      The two problems #

                      Dependency graph
                      Dependency graph

                      A marked graph has a feedback vertex set at most as large as its marked set. (Finiteness of the universe is part of the property: cardinality thresholds are only meaningful on finite structures.)

                      Equations
                      Instances For
                        Dependency graph
                        Dependency graph
                        Dependency graph
                        Dependency graph

                        FEEDBACK VERTEX SET, as a problem on marked graphs: is there a set of vertices at most as large as the marked set whose removal leaves an acyclic digraph?

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          Dependency graph

                          FEEDBACK ARC SET, as a problem on arc-marked digraphs: is there a set of arcs at most as large as the marked relation whose removal leaves an acyclic digraph?

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Dependency graph