The address a file's marks stand for #
A program that seeks to a computed address holds that address on its file, one bit per register, and holds the address under its head there too – the mirror. At the elementwise file that is nothing to say: a register is an element, a mark on the registers is an address. At a coarser file it is something to say, and this file says it.
DescriptiveComplexity.ixAddr is the address a mark on the index stands for –
each register carries the bit of one element (elt) – and
DescriptiveComplexity.ixMark is the mark a file keeps of an address, its bits
at the registers. The two are inverse on the addresses a file can hold
(DescriptiveComplexity.IxHolds), and what makes the correspondence useful is
that it carries the order, under three conditions:
eltis injective and an order embedding (hinj,hmono), so comparing marks and comparing addresses is the same comparison;- the elements it names are upward closed (
hup): above one of them there is nothing the file has no register for. The addresses over them are then downward closed – an initial interval of the tape (DescriptiveComplexity.ixHolds_of_wmSetLe) – which is what makes an increment of the addresses an increment of the marks, with no address in between that the file could not have represented.
For a clocked program's file all three hold of the argument registers, because
the argument tags are the last ones (DescriptiveComplexity.Draw.lt_arg) and
therefore the least significant: the addresses over them are the logical ones.
The address a mark on a file's index stands for: the elements whose register is marked.
Equations
- DescriptiveComplexity.ixAddr elt m x = ∃ (u : I), elt u = x ∧ m u
Instances For
Dependency graph
The mark a file keeps of an address: its bits at the registers.
Equations
- DescriptiveComplexity.ixMark elt s u = s (elt u)
Instances For
Dependency graph
An address a file can hold: every element of it is one of the file's.
Equations
- DescriptiveComplexity.IxHolds elt Use s = ∀ (x : A), s x → ∃ (u : I), Use u ∧ elt u = x
Instances For
Dependency graph
Dependency graph
A file's mark of an address stands for that address, when the file has a register for each of its elements.
Dependency graph
A mark is the mark of the address it stands for.
Dependency graph
The address of a mark is one the file can hold.
Dependency graph
Dependency graph
The addresses a file can hold are downward closed: below one of them, every element is either one the file already has a register for, or one above such an element – and above is where the file's elements are.
Dependency graph
Comparing marks is comparing the addresses they stand for, strictly.
Dependency graph
Comparing marks is comparing the addresses they stand for.
Dependency graph
An increment of the addresses is an increment of the marks: the carry is an element the file has a register for, and so is everything above it.
Dependency graph
An increment of the marks is an increment of the addresses, the same correspondence read the other way.
Dependency graph
At the elementwise file the address is the mark: a register is an element, so the correspondence is the identity and every statement here is the one the space-bounded program already had.