Documentation

DescriptiveComplexity.Problems.ThreeDimMatching.Defs

3-dimensional matching: definition #

3-DIMENSIONAL MATCHING (Karp 1972): given three marked classes and a set of triples, one element from each class, is there a set of triples covering every marked element exactly once?

The vocabulary FirstOrder.Language.tripleSys carries three unary marks xEl, yEl, zEl and one ternary relation trip. A yes-instance is one admitting a matching (DescriptiveComplexity.IsMatchingOn): a sub-relation of trip, inside the three classes, that covers each marked element exactly once. Nothing asks the three classes to be disjoint or to exhaust the universe: elements outside them ride along, and the reduction of DescriptiveComplexity.Problems.ThreeDimMatching.Hardness produces disjoint ones anyway.

Perfect matchings force the three classes to have the same size, which is why the problem is the tripartite form of Exact Cover with sets of size three, and why it is the natural source of the exact-cover family.

Relation symbols of the language of triple systems.

Instances For
    Dependency graph
    Dependency graph
    def FirstOrder.Language.instDecidableEqTripleSysRel.decEq {a✝ : } (x✝ x✝¹ : tripleSysRel a✝) :
    Decidable (x✝ = x✝¹)
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Dependency graph

      The relational language of triple systems: three marked classes and a ternary relation.

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

        The first-class symbol.

        Equations
        Instances For
          Dependency graph
          @[reducible, inline]

          The second-class symbol.

          Equations
          Instances For
            Dependency graph
            @[reducible, inline]

            The third-class symbol.

            Equations
            Instances For
              Dependency graph
              Dependency graph

              The shorthands of the vocabulary #

              Dependency graph
              Dependency graph
              Dependency graph
              Dependency graph

              Matchings #

              def DescriptiveComplexity.IsMatchingOn {A : Type} (X Y Z : AProp) (T M : AAAProp) :

              A matching: a set of triples, taken from T and lying in the three classes, covering every marked element exactly once.

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

                The problem #

                A triple system is a yes-instance when some subset of its triples covers each marked element exactly once.

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

                  3-DIMENSIONAL MATCHING, as a problem on triple systems: do some of the triples cover every marked element exactly once?

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