Documentation

DescriptiveComplexity.Problems.Wide.Defs

The wide machine: a machine addressed by the subsets of its instance #

The machine model of the exponential classes. A DescriptiveComplexity.TMData read over the instance itself is a machine with polynomially many cells, and the library's bounds are unary by construction, so DescriptiveComplexity.NTMAccept lands in NP and DescriptiveComplexity.NTMAcceptSpace in PSPACE. The wide machine is the same model with one exponent added in the semantics of the problem, and nowhere else:

its tape is addressed by the subsets of the instance, while its control – the transitions, the states, the symbols – stays an ordinary part of the instance.

So an instance of size n describes a machine with 2^n cells and 2^n time steps, and the two resource variants land one exponential up: DescriptiveComplexity.WideAccept in NEXPTIME and DescriptiveComplexity.WideAcceptSpace in EXPSPACE (DescriptiveComplexity.Problems.Wide.Membership). A reduction of dimension d buys itself 2^(nᵈ) cells exactly as a reduction into DescriptiveComplexity.NTMAccept buys itself nᵈ.

The universe of the machine #

The machine runs over DescriptiveComplexity.WPoint, the disjoint union of

That is exactly the universe an exponential expansion of the instance has, with one tag for each summand (DescriptiveComplexity.Problems.Wide.Expansion), and it is why the membership proofs are the composition NTMAccept ∘ expansion rather than an argument about resources.

Where the order comes from #

DescriptiveComplexity.TMData needs a linear order on its universe, and a decision problem may not read the ambient order of its instance. So the instance carries its own order wmLe, and the order on addresses is the binary-number order it induces: one subset is below another when, at the wmLe-least element where they differ, the second contains it and the first does not (DescriptiveComplexity.WMSetLe). Addresses come below control elements, so the least position is the empty address. That the resulting relation is linear is a promise, folded into the yes-instances through DescriptiveComplexity.TMData.WellFormed exactly as for DescriptiveComplexity.NTMAccept.

Where the input goes #

The initial tape is described by the binary symbol wmInp of the instance, read at the initial-segment addresses: the address {y | y ≤ x} holds the input symbol of x, and every other address – including the empty one, where the head starts – holds the blank. Initial segments are ordered like the elements they come from, so the input appears along the tape in the instance's own order, and the whole of it is first-order describable over the instance, which is what the expansion needs.

Relation symbols of wide-machine instances: the control of FirstOrder.Language.turing, with the positions and their order replaced by an order on the elements – the digits of an address.

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

      The relational vocabulary of wide-machine instances.

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

        The order on the elements of the instance.

        Equations
        Instances For
          Dependency graph
          @[reducible, inline]

          The transition symbol.

          Equations
          Instances For
            Dependency graph
            @[reducible, inline]

            The start-state symbol.

            Equations
            Instances For
              Dependency graph
              @[reducible, inline]

              The accepting-state symbol.

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

                The move-right symbol.

                Equations
                Instances For
                  Dependency graph
                  @[reducible, inline]

                  The transition-source symbol.

                  Equations
                  Instances For
                    Dependency graph
                    @[reducible, inline]

                    The transition-read symbol.

                    Equations
                    Instances For
                      Dependency graph
                      @[reducible, inline]

                      The transition-destination symbol.

                      Equations
                      Instances For
                        Dependency graph
                        @[reducible, inline]

                        The transition-write symbol.

                        Equations
                        Instances For
                          Dependency graph
                          @[reducible, inline]

                          The input symbol.

                          Equations
                          Instances For
                            Dependency graph

                            The shorthands of the vocabulary #

                            Dependency graph
                            Dependency graph
                            Dependency graph
                            Dependency graph
                            Dependency graph
                            Dependency graph
                            Dependency graph
                            Dependency graph
                            Dependency graph
                            Dependency graph
                            Dependency graph

                            The universe and the machine #

                            @[reducible, inline]

                            The universe of a wide machine: the addresses – the subsets of the instance, which are its tape cells and its time steps – together with the elements of the instance, which are its control. An abbrev, so that the sum structure stays visible to rw and to the elaborator.

                            Equations
                            Instances For
                              Dependency graph

                              Being a position: the addresses are the positions, the control elements are not.

                              Equations
                              Instances For
                                Dependency graph

                                The order on the universe: addresses first, in the binary-number order they inherit from the instance's own order, then the control elements in that same order.

                                Equations
                                Instances For
                                  Dependency graph
                                  def DescriptiveComplexity.wpMark {A : Type} (R : AProp) :
                                  WPoint AProp

                                  A mark of the control, read on the universe of the machine: no address carries it.

                                  Equations
                                  Instances For
                                    Dependency graph
                                    def DescriptiveComplexity.wpAttr {A : Type} (R : AAProp) :
                                    WPoint AWPoint AProp

                                    A binary attribute of the control, read on the universe of the machine.

                                    Equations
                                    Instances For
                                      Dependency graph

                                      The initial tape: the address cutting the initial segment of x holds the input symbol of x.

                                      Equations
                                      Instances For
                                        Dependency graph

                                        The wide machine an instance describes: the control read off the instance, the positions being the addresses.

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

                                          Isomorphism-invariance #

                                          An isomorphism of instances is a bijection of the machines' universes: addresses transport by taking preimages, control elements by the isomorphism itself.

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

                                            An isomorphism makes the two wide machines agree, fieldwise: every symbol of the vocabulary transports, and the two derived notions – the order on addresses and the initial segment of an element – transport by DescriptiveComplexity.wmSetLe_congr and DescriptiveComplexity.wmDown_congr.

                                            Dependency graph

                                            The problems #

                                            Wide machine acceptance. Does the machine described by the instance – its tape addressed by the subsets of the instance – accept its input within as many steps as there are addresses? The well-formedness promises of DescriptiveComplexity.TMData.WellFormed are folded into the yes-instances, as for DescriptiveComplexity.NTMAccept; here they amount to the instance's order being linear, its input functional and its blank unique.

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

                                              Wide machine acceptance in bounded space: the same question with the step bound dropped. The space is still bounded by construction – the tape is indexed by the addresses – but a run may now visit doubly exponentially many configurations.

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

                                                Deterministic wide machine acceptance in bounded space, with determinism folded into the yes-instances as in DescriptiveComplexity.DTMAcceptSpace.

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