Decoder-facing combined switching advice #
This module gives the counted block advice a canonical sequential interpretation. Each stored position subset is replayed in increasing source order. A continuing block closes after its last query, while the last block never needs a closing marker because replay ends with the advice list.
Expand one block into the elementary query format used by the canonical replay decoder.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Expanding a block preserves its indexed length.
Combined advice for a nonempty path, split into its first block and, if that block does not end the path, the advice for the rest.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Combined advice for a path of length pathLength + 1 is its first-block view.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flatten combined advice into sequential query advice. Source positions are sorted within each block; exactly the nonfinal block boundaries are marked.
Equations
- One or more equations did not get rendered due to their size.
- Algebraic.AC0.Switching.CombinedAdvice.toQueryList 0 x_2 = []
Instances For
Flattening combined advice produces exactly the indexed number of query symbols.
The first-block view of advice consisting of one final block.
Equations
Instances For
Package one positive-length block as final combined advice.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flattening a packaged final block returns precisely that block, with no operationally unnecessary closing marker.
The first-block view of advice obtained by prepending a continuing block to the advice for a nonempty remainder.
Equations
Instances For
Prepend a positive continuing block to nonempty combined advice.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flattening prepended advice concatenates the continuing block and the nonempty tail.
The same query advice with its block-closing marker cleared.
Equations
- advice.withoutClose = { position := advice.position, closesBlock := false, difference := advice.difference }
Instances For
Erase the final query's block-closing marker. It is operationally irrelevant because no advice remains after that query.
Equations
- Algebraic.AC0.Switching.clearLastClose [] = []
- Algebraic.AC0.Switching.clearLastClose [advice] = [advice.withoutClose]
- Algebraic.AC0.Switching.clearLastClose (advice :: next :: rest) = advice :: Algebraic.AC0.Switching.clearLastClose (next :: rest)
Instances For
Erasing the last closing marker preserves list length.
Canonical replay is insensitive to the final query's closing marker.
Decode a refined restriction carrying combined block advice.
Equations
- One or more equations did not get rendered due to their size.