Drawing the domino system of a machine #
The elements of the PCP instance the reduction from
DescriptiveComplexity.HALT writes, and what its relations are to say about
them – everything semantic, no formula in sight. The sibling Interp file
writes first-order formulas realizing exactly the predicates of this file, and
the Match file proves that an instance reading this way has a match exactly
when the machine accepts.
The universe #
An element is a tag with a 5-tuple of source elements
(DescriptiveComplexity.HaltPcp.PV); the dimension is set by the move
dominoes, whose rules of DescriptiveComplexity.HaltPcp.MRule are indexed by
up to five attribute values. Tags fall into three groups:
- letters – the alphabet
DescriptiveComplexity.Pcp.History.LetteroverDescriptiveComplexity.HaltPcp.TapeLetter, drawn byDescriptiveComplexity.HaltPcp.letterElem: one constant tag per constant letter, and a tag carrying one source element for the symbol and state letters; - positions – eight shared constants carrying the short words of every
domino, the interleaved page block
pairSym p < pairStar p < pairSym p' …carrying the input page of the start domino's bottom word, and four high constants closing it; - dominoes – one tag per shape of
DescriptiveComplexity.Pcp.History.Domat the rules of the machine, the rule dominoes carrying their attribute values in the tuple.
The word tables #
Every short word is a static list of letter specifications
(DescriptiveComplexity.HaltPcp.LSpec): each letter is a constant or is
indexed by one coordinate of the domino. uSpec/vSpec give the table of
each domino tag, and the letter relations PUAt/PVAt say exactly “the pair
(position, letter) is an entry of the zipped table” – one uniform definition,
one uniform sortedness argument, one uniform reading lemma, instead of one per
domino. Only the start domino's bottom word – the one word whose length grows
with the instance – has its own relation, StartBotAt.
The order #
One uniform lexicographic key orders the whole universe: the static block
index of the tag, then the first coordinate in the machine's own order –
which is what interleaves the page block correctly – then the static sub-index
(letter before star inside the page block), then the remaining coordinates in
the ambient order. On a well-formed machine this is a linear order on all of
PV A, junk included.
The tags #
The tags of the drawn PCP instance: letters, positions and dominoes.
- ltStar : PTag
The decoration letter.
- ltSep : PTag
The separator letter between configurations.
- ltTri : PTag
The letter opening a history.
- ltDia : PTag
The letter closing a match.
- ltLft : PTag
The left endmarker, as a letter.
- ltRgt : PTag
The right endmarker, as a letter.
- ltBoot : PTag
The boot letter.
- ltHalt : PTag
The halting letter.
- ltSym : PTag
A tape symbol, carrying its element.
- ltState : PTag
A state, carrying its element.
- pos0 : PTag
The eight shared positions of the short words.
- pos1 : PTag
- pos2 : PTag
- pos3 : PTag
- pos4 : PTag
- pos5 : PTag
- pos6 : PTag
- pos7 : PTag
- pairSym : PTag
The page block: the position carrying the input symbol of a source position.
- pairStar : PTag
The page block: the decoration position after a source position.
- hi0 : PTag
The four positions closing the start domino's bottom word.
- hi1 : PTag
- hi2 : PTag
- hi3 : PTag
- dStart : PTag
The start domino.
- dClose : PTag
The closing domino.
- dCopySep : PTag
The domino copying the separator.
- dCopyLft : PTag
The dominoes copying the constant letters of the alphabet.
- dCopyRgt : PTag
- dCopyBoot : PTag
- dCopyHalt : PTag
- dCopySym : PTag
The domino copying a tape symbol, carrying its element.
- dCopyState : PTag
The domino copying a state letter, carrying its element.
- dBoot : PTag
The boot rule, carrying its start state.
- dAcc : PTag
The halting rule, carrying its accepting state.
- dMoveR : PTag
The four move rules, carrying
(q, a, b, q', c)respectively(q, a, b, q', blank). - dMoveREnd : PTag
- dMoveL : PTag
- dMoveLEnd : PTag
- dEraseSymL : PTag
The four erasers, the symbol ones carrying their element.
- dEraseLft : PTag
- dEraseSymR : PTag
- dEraseRgt : PTag
Instances For
Dependency graph
Dependency graph
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
The block index of a tag: the primary key of the order of the universe. The page block is the only block shared by two tags.
Equations
- DescriptiveComplexity.HaltPcp.PTag.pos0.bIdx = 0
- DescriptiveComplexity.HaltPcp.PTag.pos1.bIdx = 1
- DescriptiveComplexity.HaltPcp.PTag.pos2.bIdx = 2
- DescriptiveComplexity.HaltPcp.PTag.pos3.bIdx = 3
- DescriptiveComplexity.HaltPcp.PTag.pos4.bIdx = 4
- DescriptiveComplexity.HaltPcp.PTag.pos5.bIdx = 5
- DescriptiveComplexity.HaltPcp.PTag.pos6.bIdx = 6
- DescriptiveComplexity.HaltPcp.PTag.pos7.bIdx = 7
- DescriptiveComplexity.HaltPcp.PTag.pairSym.bIdx = 8
- DescriptiveComplexity.HaltPcp.PTag.pairStar.bIdx = 8
- DescriptiveComplexity.HaltPcp.PTag.hi0.bIdx = 9
- DescriptiveComplexity.HaltPcp.PTag.hi1.bIdx = 10
- DescriptiveComplexity.HaltPcp.PTag.hi2.bIdx = 11
- DescriptiveComplexity.HaltPcp.PTag.hi3.bIdx = 12
- DescriptiveComplexity.HaltPcp.PTag.ltStar.bIdx = 13
- DescriptiveComplexity.HaltPcp.PTag.ltSep.bIdx = 14
- DescriptiveComplexity.HaltPcp.PTag.ltTri.bIdx = 15
- DescriptiveComplexity.HaltPcp.PTag.ltDia.bIdx = 16
- DescriptiveComplexity.HaltPcp.PTag.ltLft.bIdx = 17
- DescriptiveComplexity.HaltPcp.PTag.ltRgt.bIdx = 18
- DescriptiveComplexity.HaltPcp.PTag.ltBoot.bIdx = 19
- DescriptiveComplexity.HaltPcp.PTag.ltHalt.bIdx = 20
- DescriptiveComplexity.HaltPcp.PTag.ltSym.bIdx = 21
- DescriptiveComplexity.HaltPcp.PTag.ltState.bIdx = 22
- DescriptiveComplexity.HaltPcp.PTag.dStart.bIdx = 23
- DescriptiveComplexity.HaltPcp.PTag.dClose.bIdx = 24
- DescriptiveComplexity.HaltPcp.PTag.dCopySep.bIdx = 25
- DescriptiveComplexity.HaltPcp.PTag.dCopyLft.bIdx = 26
- DescriptiveComplexity.HaltPcp.PTag.dCopyRgt.bIdx = 27
- DescriptiveComplexity.HaltPcp.PTag.dCopyBoot.bIdx = 28
- DescriptiveComplexity.HaltPcp.PTag.dCopyHalt.bIdx = 29
- DescriptiveComplexity.HaltPcp.PTag.dCopySym.bIdx = 30
- DescriptiveComplexity.HaltPcp.PTag.dCopyState.bIdx = 31
- DescriptiveComplexity.HaltPcp.PTag.dBoot.bIdx = 32
- DescriptiveComplexity.HaltPcp.PTag.dAcc.bIdx = 33
- DescriptiveComplexity.HaltPcp.PTag.dMoveR.bIdx = 34
- DescriptiveComplexity.HaltPcp.PTag.dMoveREnd.bIdx = 35
- DescriptiveComplexity.HaltPcp.PTag.dMoveL.bIdx = 36
- DescriptiveComplexity.HaltPcp.PTag.dMoveLEnd.bIdx = 37
- DescriptiveComplexity.HaltPcp.PTag.dEraseSymL.bIdx = 38
- DescriptiveComplexity.HaltPcp.PTag.dEraseLft.bIdx = 39
- DescriptiveComplexity.HaltPcp.PTag.dEraseSymR.bIdx = 40
- DescriptiveComplexity.HaltPcp.PTag.dEraseRgt.bIdx = 41
Instances For
Dependency graph
The sub-index inside a block: the input symbol comes before the decoration that follows it.
Equations
Instances For
Dependency graph
The pair of indices identifies the tag.
Dependency graph
The universe and its distinguished elements #
The universe of the drawn instance: a tag and a 5-tuple of source
elements.
Equations
Instances For
Dependency graph
The least source element, the padding of the unused coordinates.
Equations
Instances For
Dependency graph
The constant element of a tag.
Equations
- DescriptiveComplexity.HaltPcp.cstE t = (t, fun (x : Fin 5) => DescriptiveComplexity.HaltPcp.pbot)
Instances For
Dependency graph
The element of a tag carrying one source element.
Equations
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The order of the universe #
One lexicographic key: the static block index, the first coordinate in the machine's order, the static sub-index, the remaining coordinates in the ambient order.
Strictly below, in the machine's order.
Equations
- DescriptiveComplexity.HaltPcp.MLt a b = (DescriptiveComplexity.TMLe a b ∧ a ≠ b)
Instances For
Dependency graph
The ambient lexicographic order on the last four coordinates.
Equations
Instances For
Dependency graph
The order of the drawn instance: block index, first coordinate in the machine's order, sub-index, remaining coordinates. On a well-formed machine this is a linear order on the whole universe.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The strict part of the order of the drawn instance.
Equations
- DescriptiveComplexity.HaltPcp.PLt x y = (DescriptiveComplexity.HaltPcp.PLe x y ∧ x ≠ y)
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The word tables #
A letter of a short word: a constant, or a letter carrying one coordinate of its domino.
- cst : PTag → LSpec
A constant letter.
- idx : PTag → Fin 5 → LSpec
A letter carrying the given coordinate of the domino.
Instances For
Dependency graph
The letter an entry of the table stands for, at a domino's tuple.
Equations
Instances For
Dependency graph
The eight shared positions of the short words.
Equations
- DescriptiveComplexity.HaltPcp.posE 0 = DescriptiveComplexity.HaltPcp.cstE DescriptiveComplexity.HaltPcp.PTag.pos0
- DescriptiveComplexity.HaltPcp.posE 1 = DescriptiveComplexity.HaltPcp.cstE DescriptiveComplexity.HaltPcp.PTag.pos1
- DescriptiveComplexity.HaltPcp.posE 2 = DescriptiveComplexity.HaltPcp.cstE DescriptiveComplexity.HaltPcp.PTag.pos2
- DescriptiveComplexity.HaltPcp.posE 3 = DescriptiveComplexity.HaltPcp.cstE DescriptiveComplexity.HaltPcp.PTag.pos3
- DescriptiveComplexity.HaltPcp.posE 4 = DescriptiveComplexity.HaltPcp.cstE DescriptiveComplexity.HaltPcp.PTag.pos4
- DescriptiveComplexity.HaltPcp.posE 5 = DescriptiveComplexity.HaltPcp.cstE DescriptiveComplexity.HaltPcp.PTag.pos5
- DescriptiveComplexity.HaltPcp.posE 6 = DescriptiveComplexity.HaltPcp.cstE DescriptiveComplexity.HaltPcp.PTag.pos6
- DescriptiveComplexity.HaltPcp.posE x✝ = DescriptiveComplexity.HaltPcp.cstE DescriptiveComplexity.HaltPcp.PTag.pos7
Instances For
Dependency graph
The first n of the shared positions, in order.
Equations
Instances For
Dependency graph
The top words, as tables: the decorated left-hand sides of the rules, and the tops of the bookkeeping dominoes.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HaltPcp.uSpec x✝ = []
Instances For
Dependency graph
The bottom words, as tables – all but the start domino's, which has its own layout.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HaltPcp.vSpec DescriptiveComplexity.HaltPcp.PTag.dClose = [DescriptiveComplexity.HaltPcp.LSpec.cst DescriptiveComplexity.HaltPcp.PTag.ltDia]
- DescriptiveComplexity.HaltPcp.vSpec x✝ = []
Instances For
Dependency graph
The top word of a domino element.
Equations
Instances For
Dependency graph
The bottom word of a domino element other than the start domino.
Equations
Instances For
Dependency graph
The top letter relation: the pair is an entry of the zipped table.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The bottom word of the start domino: seven low constants, the interleaved page block carrying the input, four high constants.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The bottom letter relation: the start domino reads its own layout, every other domino its table.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The dominoes #
The side condition a domino tag places on its tuple: the promises of the rule it stands for.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Being a domino of the drawn instance: the machine is well-formed and the tag's side condition holds.
Equations
Instances For
Dependency graph
The abstract domino an element stands for.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Every legitimate domino is drawn: an element with the right guard stands for it.
Dependency graph
The positions, in order #
The page block of the start domino's bottom word: the input position and its decoration, per source position.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The positions of the start domino's bottom word.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The letters of the page block: the input symbol and the decoration.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The letters of the start domino's bottom word.
Equations
- One or more equations did not get rendered due to their size.