The control's reads and writes are definable #
Everything the program keeps in its control is a bit – a flag, an
accumulator, a verdict – and every write of one is
DescriptiveComplexity.Draw.Data.putVec or its one-slot special case
setCtl: the named slots take the bits of a family, and every other slot rides
along. So one lemma per shape settles the whole control layer, given that the
questions behind the bits are definable.
Reading is the same statement one step simpler:
DescriptiveComplexity.Draw.Data.readVec is an existential over the levels of
a slot family, and ctlBit is a single atom.
Reading #
A control slot, read as a bit.
Dependency graph
A vector of control slots, read at a level: one atom below the length, and nothing above it – a decision the formula is built with.
Dependency graph
The inner fold's accumulator, read at a level.
Dependency graph
A sub-fold's accumulator, read at a level.
Dependency graph
Writing #
A vector of control slots, written: the named slots take the bits of the family, and every other slot rides along – so the whole write is definable as soon as each of the family's questions is.
Dependency graph
One control slot, written.
Dependency graph
The inner fold's accumulator vector, written.
Dependency graph
The leaf flag, stored.
Dependency graph
The folds at the empty valuation: every accumulator the polarity's unit, which is a question the formula is built from.