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
- the addresses
A → Prop– the subsets of the instance, which are the tape cells and equally the time steps; and - the control elements, the elements of the instance themselves, which are its states, its symbols and its transitions.
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.
- wle : wideRel 2
wmLe x y: the order on the elements, along which an address is read as a binary number. - tr : wideRel 1
wmTr τ:τis a transition. - start : wideRel 1
wmStart q:qis a start state. - acc : wideRel 1
wmAcc q:qis an accepting state. - blank : wideRel 1
wmBlank a:ais the blank symbol. - right : wideRel 1
wmRight τ: the transitionτmoves the head right. - src : wideRel 2
wmSrc τ q:τapplies in the stateq. - read : wideRel 2
wmRead τ a:τapplies when reading the symbola. - dst : wideRel 2
wmDst τ q:τmoves to the stateq. - write : wideRel 2
wmWrite τ a:τwrites the symbola. - inp : wideRel 2
wmInp x a: the address{y | y ≤ x}initially holds the symbola.
Instances For
Dependency graph
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
- FirstOrder.Language.wide = { Functions := fun (x : ℕ) => Empty, Relations := FirstOrder.Language.wideRel }
Instances For
Dependency graph
Dependency graph
The order on the elements of the instance.
Instances For
Dependency graph
The transition symbol.
Instances For
Dependency graph
The start-state symbol.
Instances For
Dependency graph
The accepting-state symbol.
Instances For
Dependency graph
The blank symbol.
Instances For
Dependency graph
The move-right symbol.
Instances For
Dependency graph
The transition-source symbol.
Instances For
Dependency graph
The transition-read symbol.
Instances For
Dependency graph
The transition-destination symbol.
Instances For
Dependency graph
The transition-write symbol.
Instances For
Dependency graph
The input symbol.
Instances For
Dependency graph
The shorthands of the vocabulary #
The order on the elements of the instance.
Equations
Instances For
Dependency graph
Being a transition.
Equations
Instances For
Dependency graph
Being a start state.
Equations
Instances For
Dependency graph
Being an accepting state.
Equations
Instances For
Dependency graph
Being the blank symbol.
Equations
Instances For
Dependency graph
Moving the head right.
Equations
Instances For
Dependency graph
The state a transition applies in.
Equations
Instances For
Dependency graph
The symbol a transition reads.
Equations
Instances For
Dependency graph
The state a transition moves to.
Equations
Instances For
Dependency graph
The symbol a transition writes.
Equations
Instances For
Dependency graph
The input at an initial-segment address.
Equations
Instances For
Dependency graph
The universe and the machine #
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
- DescriptiveComplexity.WPoint A = ((A → Prop) ⊕ A)
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
- DescriptiveComplexity.wpLe (Sum.inl s) (Sum.inl t) = DescriptiveComplexity.WMSetLe DescriptiveComplexity.WMLe s t
- DescriptiveComplexity.wpLe (Sum.inl val) (Sum.inr val_1) = True
- DescriptiveComplexity.wpLe (Sum.inr val) (Sum.inl val_1) = False
- DescriptiveComplexity.wpLe (Sum.inr x_2) (Sum.inr y) = DescriptiveComplexity.WMLe x_2 y
Instances For
Dependency graph
A mark of the control, read on the universe of the machine: no address carries it.
Equations
- DescriptiveComplexity.wpMark R (Sum.inl val) = False
- DescriptiveComplexity.wpMark R (Sum.inr val) = R val
Instances For
Dependency graph
A binary attribute of the control, read on the universe of the machine.
Equations
- DescriptiveComplexity.wpAttr R (Sum.inr x_2) (Sum.inr y) = R x_2 y
- DescriptiveComplexity.wpAttr R x✝¹ x✝ = False
Instances For
Dependency graph
The initial tape: the address cutting the initial segment of x holds the
input symbol of x.
Equations
- DescriptiveComplexity.wpInp (Sum.inl s) (Sum.inr y) = ∃ (x : A), DescriptiveComplexity.WMDown DescriptiveComplexity.WMLe s x ∧ DescriptiveComplexity.WMInp x y
- DescriptiveComplexity.wpInp x✝¹ x✝ = False
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.