Drawing the simulating machine and its input page #
The interpretation of the reduction P ≤ᶠᵒ[≤] HALT: the states, symbols and
transitions of the simulating machine are tags – constant at every instance
size – and the cells of its initial tape are tagged tuples of the source
structure: one bit cell and one fold cell per tuple of each source relation
(the chain of DescriptiveComplexity.HaltHard.inputChain), and a handful of
constant cells for the markers and the spelled initial value [0, n].
The one order key of the whole universe, junk included: the block index of
the tag, then the tuple in descending lexicographic order with the last
coordinate most significant – matching the little-endian significance of
DescriptiveComplexity.tupleIdx, so that position-ascending order reads the
flattened relation table reversed, which is the order the chain folds – and
a static sub-index that interleaves each bit cell with its fold cell.
Unused coordinates are pinned to the minimum
(DescriptiveComplexity.Canon), so cells enumerate exactly once.
The cell tags #
The tags of the input cells: the left marker, one bit cell and one fold
cell per source symbol (carrying a tuple of its arity), the procedure cell,
the middle marker, the inner blank, and the spelled initial value [0, n] –
a separator, one digit cell per element, a separator, and the right
marker.
- cEndL
{L : FirstOrder.Language}
{V : L.FinVocab}
: CellTag V
The cell of
endL. - cBit
{L : FirstOrder.Language}
{V : L.FinVocab}
(i : Fin V.numSyms)
: CellTag V
A bit cell of the chain: one per tuple of the source symbol
i. - cFold
{L : FirstOrder.Language}
{V : L.FinVocab}
(i : Fin V.numSyms)
: CellTag V
The fold cell paired with a bit cell.
- cProc
{L : FirstOrder.Language}
{V : L.FinVocab}
: CellTag V
The cell of the final
compheader, the semi-decision procedure. - cMid
{L : FirstOrder.Language}
{V : L.FinVocab}
: CellTag V
The cell of
mid. - cGap
{L : FirstOrder.Language}
{V : L.FinVocab}
: CellTag V
The one blank of the inner gap.
- cComL
{L : FirstOrder.Language}
{V : L.FinVocab}
: CellTag V
The separator left of the digits.
- cOne
{L : FirstOrder.Language}
{V : L.FinVocab}
: CellTag V
A digit cell of the spelled size: one per element.
- cComR
{L : FirstOrder.Language}
{V : L.FinVocab}
: CellTag V
The separator right of the digits.
- cEndR
{L : FirstOrder.Language}
{V : L.FinVocab}
: CellTag V
The cell of
endR.
Instances For
Dependency graph
An injective numbering of the cell tags, for finiteness.
Equations
- DescriptiveComplexity.HaltHard.CellTag.key V DescriptiveComplexity.HaltHard.CellTag.cEndL = (0, 0)
- DescriptiveComplexity.HaltHard.CellTag.key V (DescriptiveComplexity.HaltHard.CellTag.cBit i) = (1, i.castSucc)
- DescriptiveComplexity.HaltHard.CellTag.key V (DescriptiveComplexity.HaltHard.CellTag.cFold i) = (2, i.castSucc)
- DescriptiveComplexity.HaltHard.CellTag.key V DescriptiveComplexity.HaltHard.CellTag.cProc = (3, 0)
- DescriptiveComplexity.HaltHard.CellTag.key V DescriptiveComplexity.HaltHard.CellTag.cMid = (4, 0)
- DescriptiveComplexity.HaltHard.CellTag.key V DescriptiveComplexity.HaltHard.CellTag.cGap = (5, 0)
- DescriptiveComplexity.HaltHard.CellTag.key V DescriptiveComplexity.HaltHard.CellTag.cComL = (6, 0)
- DescriptiveComplexity.HaltHard.CellTag.key V DescriptiveComplexity.HaltHard.CellTag.cOne = (7, 0)
- DescriptiveComplexity.HaltHard.CellTag.key V DescriptiveComplexity.HaltHard.CellTag.cComR = (8, 0)
- DescriptiveComplexity.HaltHard.CellTag.key V DescriptiveComplexity.HaltHard.CellTag.cEndR = (9, 0)
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The coordinates a cell tag uses; the rest are pinned to the minimum.
Equations
- DescriptiveComplexity.HaltHard.CellTag.used V (DescriptiveComplexity.HaltHard.CellTag.cBit i) = V.arity i
- DescriptiveComplexity.HaltHard.CellTag.used V (DescriptiveComplexity.HaltHard.CellTag.cFold i) = V.arity i
- DescriptiveComplexity.HaltHard.CellTag.used V DescriptiveComplexity.HaltHard.CellTag.cOne = 1
- DescriptiveComplexity.HaltHard.CellTag.used V x✝ = 0
Instances For
Dependency graph
Dependency graph
The tags of the drawn instance #
The tags of the drawn instance: a machine element – a state, a symbol or a transition of the simulating machine – or an input cell.
Equations
Instances For
Dependency graph
Dependency graph
Dependency graph
The coordinates a tag uses.
Equations
- DescriptiveComplexity.HaltHard.HTag.used V cF cP (Sum.inl val) = 0
- DescriptiveComplexity.HaltHard.HTag.used V cF cP (Sum.inr c) = DescriptiveComplexity.HaltHard.CellTag.used V c
Instances For
Dependency graph
A chosen injective numbering of the machine elements, for the order on the junk.
Equations
Instances For
Dependency graph
Dependency graph
The block index of a tag – the primary component of the one order key. The chain blocks descend along the symbols, each shared by the bit and fold tags; the machine elements sit above everything, ordered by the chosen numbering.
Equations
- DescriptiveComplexity.HaltHard.blockIdx V cF cP (Sum.inr DescriptiveComplexity.HaltHard.CellTag.cEndL) = 0
- DescriptiveComplexity.HaltHard.blockIdx V cF cP (Sum.inr (DescriptiveComplexity.HaltHard.CellTag.cBit i)) = 1 + (V.numSyms - 1 - ↑i)
- DescriptiveComplexity.HaltHard.blockIdx V cF cP (Sum.inr (DescriptiveComplexity.HaltHard.CellTag.cFold i)) = 1 + (V.numSyms - 1 - ↑i)
- DescriptiveComplexity.HaltHard.blockIdx V cF cP (Sum.inr DescriptiveComplexity.HaltHard.CellTag.cProc) = V.numSyms + 1
- DescriptiveComplexity.HaltHard.blockIdx V cF cP (Sum.inr DescriptiveComplexity.HaltHard.CellTag.cMid) = V.numSyms + 2
- DescriptiveComplexity.HaltHard.blockIdx V cF cP (Sum.inr DescriptiveComplexity.HaltHard.CellTag.cGap) = V.numSyms + 3
- DescriptiveComplexity.HaltHard.blockIdx V cF cP (Sum.inr DescriptiveComplexity.HaltHard.CellTag.cComL) = V.numSyms + 4
- DescriptiveComplexity.HaltHard.blockIdx V cF cP (Sum.inr DescriptiveComplexity.HaltHard.CellTag.cOne) = V.numSyms + 5
- DescriptiveComplexity.HaltHard.blockIdx V cF cP (Sum.inr DescriptiveComplexity.HaltHard.CellTag.cComR) = V.numSyms + 6
- DescriptiveComplexity.HaltHard.blockIdx V cF cP (Sum.inr DescriptiveComplexity.HaltHard.CellTag.cEndR) = V.numSyms + 7
- DescriptiveComplexity.HaltHard.blockIdx V cF cP (Sum.inl u) = V.numSyms + 8 + DescriptiveComplexity.HaltHard.uCode cF cP u
Instances For
Dependency graph
The sub-index breaking the tie inside a chain block: the fold cell sits right of its bit cell.
Equations
- DescriptiveComplexity.HaltHard.subIdx V cF cP (Sum.inr (DescriptiveComplexity.HaltHard.CellTag.cFold i)) = 1
- DescriptiveComplexity.HaltHard.subIdx V cF cP x✝ = 0
Instances For
Dependency graph
The pair of indices determines the tag.
Dependency graph
The reversed lexicographic order on tuples #
u is below w in the reversed lexicographic order: they differ, and at
the highest differing coordinate u is smaller. Matching the little-endian
significance of DescriptiveComplexity.tupleIdx, this is comparison of
tuple numbers.
Equations
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The one order of the whole universe #
The order of the drawn universe, junk included: block index of the tag, then the tuple – descending along the reversed lexicographic order, so that ascending positions read descending tuple numbers – then the sub-index.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
The defining formulas #
The reversed lexicographic comparison, as a formula: p is below q.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Being a position: a cell tag on a canonically padded tuple.
Equations
Instances For
Dependency graph
A unary machine predicate: the tag is a machine element satisfying it, canonically padded.
Equations
- DescriptiveComplexity.HaltHard.mUnaryF V cF cP Q (Sum.inl val) = if Q val then DescriptiveComplexity.canonF 0 (DescriptiveComplexity.CodeProgRed.sel₀ V) else ⊥
- DescriptiveComplexity.HaltHard.mUnaryF V cF cP Q (Sum.inr c) = ⊥
Instances For
Dependency graph
A binary machine predicate: two machine elements satisfying it, canonically padded.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HaltHard.mBinaryF V cF cP Q t t' = ⊥
Instances For
Dependency graph
The order, by the one key: block index, then the reversed lexicographic order descending, then the sub-index.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The letter a cell initially holds, semantically: the marker of its tag, and on a bit cell the pushed bit reads the source relation.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HaltHard.InpOn V cF cP DescriptiveComplexity.HaltHard.CellTag.cEndL u w = (u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.endL)
- DescriptiveComplexity.HaltHard.InpOn V cF cP DescriptiveComplexity.HaltHard.CellTag.cMid u w = (u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.mid)
- DescriptiveComplexity.HaltHard.InpOn V cF cP DescriptiveComplexity.HaltHard.CellTag.cGap u w = (u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.bk)
- DescriptiveComplexity.HaltHard.InpOn V cF cP DescriptiveComplexity.HaltHard.CellTag.cComL u w = (u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.com)
- DescriptiveComplexity.HaltHard.InpOn V cF cP DescriptiveComplexity.HaltHard.CellTag.cOne u w = (u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.one)
- DescriptiveComplexity.HaltHard.InpOn V cF cP DescriptiveComplexity.HaltHard.CellTag.cComR u w = (u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.com)
- DescriptiveComplexity.HaltHard.InpOn V cF cP DescriptiveComplexity.HaltHard.CellTag.cEndR u w = (u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.endR)
Instances For
Dependency graph
The body of the initial-tape relation, per cell tag and letter.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HaltHard.inpBodyF V cF cP DescriptiveComplexity.HaltHard.CellTag.cEndL u = if u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.endL then ⊤ else ⊥
- DescriptiveComplexity.HaltHard.inpBodyF V cF cP DescriptiveComplexity.HaltHard.CellTag.cMid u = if u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.mid then ⊤ else ⊥
- DescriptiveComplexity.HaltHard.inpBodyF V cF cP DescriptiveComplexity.HaltHard.CellTag.cGap u = if u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.bk then ⊤ else ⊥
- DescriptiveComplexity.HaltHard.inpBodyF V cF cP DescriptiveComplexity.HaltHard.CellTag.cComL u = if u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.com then ⊤ else ⊥
- DescriptiveComplexity.HaltHard.inpBodyF V cF cP DescriptiveComplexity.HaltHard.CellTag.cOne u = if u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.one then ⊤ else ⊥
- DescriptiveComplexity.HaltHard.inpBodyF V cF cP DescriptiveComplexity.HaltHard.CellTag.cComR u = if u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.com then ⊤ else ⊥
- DescriptiveComplexity.HaltHard.inpBodyF V cF cP DescriptiveComplexity.HaltHard.CellTag.cEndR u = if u = DescriptiveComplexity.HaltHard.sts DescriptiveComplexity.HaltHard.SimSym.endR then ⊤ else ⊥
Instances For
Dependency graph
The initial-tape relation: a cell and a canonically padded symbol element, related by the body.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HaltHard.hInpF V cF cP t t' = ⊥
Instances For
Dependency graph
The interpretation: machine elements and input cells as tagged
tuples, the machine relations read off DescriptiveComplexity.HaltHard.simTM
at the tags, the input page reading the source relations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Characterization of the interpreted relations #
The element of the drawn instance with a given tag and tuple.
Equations
Instances For
Dependency graph
Dependency graph
The order, with the projections of the point reduced.