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.

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

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

    The vocabulary of the kernels: set systems together with the two guessed relation variables.

    Equations
    Instances For
      Dependency graph
      @[reducible, inline]

      The ground-element symbol in the kernels' vocabulary.

      Equations
      Instances For
        Dependency graph
        @[reducible, inline]

        The family symbol in the kernels' vocabulary.

        Equations
        Instances For
          Dependency graph
          @[reducible, inline]

          The incidence symbol in the kernels' vocabulary.

          Equations
          Instances For
            Dependency graph
            @[reducible, inline]

            The mark symbol in the kernels' vocabulary.

            Equations
            Instances For
              Dependency graph
              @[reducible, inline]

              The subfamily symbol in the kernels' vocabulary.

              Equations
              Instances For
                Dependency graph
                @[reducible, inline]

                The injection symbol in the kernels' vocabulary.

                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 coloured 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 uncoloured 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 colour 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 colour class and check first-order that every set of the family meets it and its complement.

                                          Dependency graph