Documentation

DescriptiveComplexity.Problems.SetFamily.Membership

The set family is existential second-order definable #

The membership half of the NP-completeness of Set Cover and Set Packing: both are Σ₁-definable in the sense of DescriptiveComplexity.SecondOrder (DescriptiveComplexity.setCover_sigmaSODefinable, DescriptiveComplexity.setPacking_sigmaSODefinable). Hitting Set needs no definition of its own: it FO-reduces to Set Cover (DescriptiveComplexity.Problems.SetFamily.Reductions).

The two definitions share everything but their goal clause. A single existential block (DescriptiveComplexity.familyGuessBlock) guesses a unary relation – the subfamily – and a binary one – an injection witnessing the threshold – and the first-order kernel is a conjunction of clauses built from a common kit:

The direction of the injection is the only semantic difference the threshold makes, which is exactly what the embedding forms of DescriptiveComplexity.Problems.SetFamily.Defs (DescriptiveComplexity.coversOn_iff_embedding, DescriptiveComplexity.packsOn_iff_embedding) say. This mirrors DescriptiveComplexity.clique_sigmaSODefinable, whose threshold is a lower bound like Set Packing's.

Dependency graph
@[reducible, inline]

The fam symbol over the sum.

Equations
Instances For
    Dependency graph

    The relation variables of the block.

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

      The elem symbol over the sum.

      Equations
      Instances For
        Dependency graph
        @[reducible, inline]

        The vocabulary of the kernel: the instance expanded by the block.

        Equations
        Instances For
          Dependency graph
          Dependency graph
          Dependency graph
          Dependency graph

          The single existential block shared by the Σ₁ definitions of the set family: a unary relation variable (the guessed subfamily) and a binary one (the injection witnessing the threshold).

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Dependency graph
            @[instance_reducible]
            Equations
            • One or more equations did not get rendered due to their size.
            Dependency graph
            @[reducible, inline]

            The marked symbol over the sum.

            Equations
            Instances For
              Dependency graph
              @[reducible, inline]

              The mem symbol over the sum.

              Equations
              Instances For
                Dependency graph

                The clauses #

                Kernel clause: the guessed subfamily consists of sets of the family.

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

                  Kernel clause (Set Cover): every ground element belongs to a guessed set.

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

                    Kernel clause (Set Packing): no ground element belongs to two distinct guessed sets.

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

                      The first-order kernel of the Σ₁ definition of Exact Cover: the same kit again, this time asking for a subfamily that both covers and is pairwise disjoint – and, exactness replacing the threshold, no injection clause.

                      Equations
                      Instances For
                        Dependency graph

                        Kernel clause: the binary relation variable of the block is empty. Exact Cover does not use it, and a definition that counts the witnesses has to say so, or each exact cover would be counted once per binary relation.

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

                          The kernel of the witness-counting definition of Exact Cover: the kernel of its Σ₁ definition, with the unused relation variable pinned.

                          Equations
                          Instances For
                            Dependency graph

                            Kernel clause (Set Splitting): every set of the family contains a colored ground element.

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

                              Kernel clause (Set Splitting): every set of the family contains an uncolored ground element.

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

                                The first-order kernel of the Σ₁ definition of Set Splitting: the guessed relation is read as one color class, and every set of the family meets it and its complement.

                                Equations
                                Instances For
                                  Dependency graph

                                  Kernel clause: the guessed relation holds only of ground elements.

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

                                    The kernel of the witness-counting definition of Set Splitting: a color class of ground elements splitting every set, the unused relation variable pinned.

                                    Equations
                                    Instances For
                                      Dependency graph

                                      Realization of the clauses #

                                      @[reducible, inline]

                                      Realization at a set system expanded by an assignment of the block.

                                      Equations
                                      Instances For
                                        Dependency graph

                                        Realization of the counting kernel of Exact Cover: the guessed subfamily is an exact cover, and the unused relation variable is empty.

                                        Dependency graph

                                        Realization of the counting kernel of Set Splitting.

                                        Dependency graph

                                        The two definitions #

                                        Set Cover is Σ₁-definable: existentially guess the covering subfamily and an injection of it into the marked set, then check both first-order. Since NP is defined as Σ₁-definability, this is the membership half of the NP-completeness of Set Cover.

                                        Dependency graph

                                        Set Packing is Σ₁-definable: existentially guess the packing and an injection of the marked set into it, then check both first-order. Since NP is defined as Σ₁-definability, this is the membership half of the NP-completeness of Set Packing.

                                        Dependency graph

                                        Exact Cover is Σ₁-definable: existentially guess the subfamily and check first-order that it covers every ground element and that no element is covered twice. Since NP is defined as Σ₁-definability, this is the membership half of the NP-completeness of Exact Cover.

                                        Dependency graph

                                        Set Splitting is Σ₁-definable: existentially guess one color class and check first-order that every set of the family meets it and its complement.

                                        Dependency graph