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.

@[reducible, inline]

The mem symbol over the sum.

Equations
Instances For
    Dependency graph

    The relation variables of the block.

    Instances For
      Dependency graph
      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
          @[instance_reducible]
          Equations
          • One or more equations did not get rendered due to their size.
          Dependency graph
          @[reducible, inline]

          The fam symbol over the sum.

          Equations
          Instances For
            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
              Dependency graph
              @[reducible, inline]

              The marked 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

                      Kernel clause (Set Cover's threshold, an upper bound): the guessed injection maps every member of the subfamily to a marked element.

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

                        Kernel clause (Set Packing's threshold, a lower bound): the guessed injection maps every marked element to a member of the subfamily.

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

                          Kernel clause: the guessed injection is injective.

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

                            The kernel of the Σ₁ definition of Set Cover.

                            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 (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

                                      The kernel of the Σ₁ definition of Set Packing.

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

                                        Realization of the clauses #

                                        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