Documentation

Complexitylib.Classes.Promise.Defs

Promise problems -- definitions #

A promise problem has disjoint yes- and no-instance languages. Inputs outside their union are unconstrained. This module keeps semantic solvers, explicit side-preserving maps, and polynomial-time many-one reductions separate.

Ordinary languages embed as total promise problems with no-instances equal to the complement. Gap problems should use PromiseProblem directly rather than arbitrarily assigning the gap region to one side.

A decision promise consisting of disjoint yes- and no-instance languages.

Instances For

    The set of inputs on which the problem constrains a solver.

    Equations
    Instances For

      A Boolean function solves a promise problem when it gives the required answer on both promised sides. Its behavior outside the promise is arbitrary.

      Equations
      Instances For

        An explicit map preserves both sides of a promise reduction.

        Equations
        Instances For

          Polynomial-time many-one reduction between promise problems.

          Equations
          Instances For

            Swap the promised yes and no sides.

            Equations
            Instances For

              Regard an ordinary language as a total promise problem.

              Equations
              Instances For

                Lift a language class to promise problems by total completions. A promise problem belongs to PromiseClass C when some language in C contains every yes-instance and no no-instance. Behavior outside the promise is unrestricted.

                Equations
                Instances For

                  Promise problems admitting a deterministic polynomial-time completion.

                  Equations
                  Instances For

                    Promise problems admitting a nondeterministic polynomial-time completion.

                    Equations
                    Instances For

                      Promise problems admitting a coNP completion.

                      Equations
                      Instances For

                        A promise problem is hard for a language class when every total language in the class reduces to it by a side-preserving polynomial-time map.

                        Equations
                        Instances For

                          A promise problem is complete for a language class when it belongs to the completion-based promise lift and is hard for every total language in the class.

                          Equations
                          Instances For

                            Polynomial-time side-preserving NP-hardness for a promise target.

                            Equations
                            Instances For

                              Completeness for PromiseNP under side-preserving polynomial reductions.

                              Equations
                              Instances For