Documentation

DescriptiveComplexity.Problems.Wide.Membership

The wide machines are members of the exponential classes #

The payoff of DescriptiveComplexity.Problems.Wide.Expansion: the expansion's points are the universe of the wide machine (DescriptiveComplexity.Wide.wideEquiv), so the machine an instance describes and the machine the expanded structure describes agree fieldwise (DescriptiveComplexity.Wide.wideAgree) and the three wide problems are exactly the three ordinary machine problems read over the expansion. With DescriptiveComplexity.ntmAccept_mem_NP and DescriptiveComplexity.ntmAcceptSpace_mem_PSPACE that gives

No resource argument appears anywhere: the exponent is in the universe the machine runs over, and everything else is the composition that DescriptiveComplexity.ExpDefinable is made of – an expansion applied after the problem, which is the composition that exists.

The universe of the wide machine sits inside the expansion: an address becomes the point tagged addr carrying it, a control element the point tagged ctrl carrying its singleton. It is the address expansion's own embedding (DescriptiveComplexity.AddrExp.addrEmbed), at this expansion.

Equations
Instances For
    Dependency graph

    The points of the expansion are the universe of the wide machine.

    Equations
    Instances For
      Dependency graph
      Dependency graph
      Dependency graph
      Dependency graph

      The twelve symbols #

      Each defining sentence is read at the points the embedding produces, and turns out to be the corresponding field of DescriptiveComplexity.wideData. The two generic lemmas do the bookkeeping – the tag match and the passage from the replicated block to one or two stacked copies – once for all.

      Reading a unary symbol of the expanded vocabulary at one point: the address expansion's own reading (DescriptiveComplexity.AddrExp.realize_one), at this expansion.

      Dependency graph
      theorem DescriptiveComplexity.Wide.realize_two {A : Type} [FirstOrder.Language.wide.Structure A] [LinearOrder A] (rt : FirstOrder.Language.turing.Relations 2) (φ : WTagWTagwide2.Sentence) (h : ∀ (τ : Fin 2wideExp.Tag), wideExp.relSentence rt τ = onS2 (φ (τ 0) (τ 1))) (x y : wideExp.Map A) :
      FirstOrder.Language.Structure.RelMap rt ![x, y] A φ (↑x).1 (↑y).1

      Reading a binary symbol of the expanded vocabulary at two points.

      Dependency graph
      Dependency graph

      A mark of the expanded machine is the corresponding mark of the instance, carried by the control elements alone.

      Dependency graph

      A binary attribute of the expanded machine is the corresponding attribute of the instance, holding of control elements alone.

      Dependency graph

      The order of the expanded machine: addresses in the binary-number order the instance's own order induces, then the control elements in that order.

      Dependency graph

      The initial tape of the expanded machine: the address cutting the initial segment of an element holds that element's input symbol.

      Dependency graph

      The two machines agree #

      The wide machine of the instance is the ordinary machine of the expansion, fieldwise along DescriptiveComplexity.Wide.wideEquiv.

      Dependency graph

      The memberships #

      The wide machine is the ordinary machine of the expansion: acceptance of the one is acceptance of the other.

      Dependency graph
      Dependency graph
      Dependency graph

      The wide machine is in NEXPTIME, which is NP.exp: the expansion turns it into DescriptiveComplexity.NTMAccept, and that problem is in NP. This is the first natural member the class has.

      Dependency graph

      The space-bounded wide machine is in EXPSPACE: the expansion turns it into DescriptiveComplexity.NTMAcceptSpace, and that problem is in PSPACE.

      Dependency graph

      The deterministic space-bounded wide machine is in EXPSPACE, through DescriptiveComplexity.DTMAcceptSpace.

      Dependency graph