Bitstring codecs for seeds and shift tuples #
The Lautemann characterization quantifies over seeds Fin m → Bool and over
tuples of shifts Fin t → Fin m → Bool, while the polynomial hierarchy
quantifies over bitstrings. This file provides the two codecs and their
round-trip lemmas: listOfSeed/seedOfList for a single seed, and
listOfShifts/shiftsOfList for a tuple, flattened in row-major order.
Decoding is total — out-of-range positions read as false — so a decoder is
available on every bitstring, and the length equations pin down the well-formed
encodings.
Encode a seed as a bitstring, one bit per position.
Equations
Instances For
@[simp]
@[simp]
Flatten a tuple of shifts into a single seed of length t * m, in
row-major order.
Equations
Instances For
Encode a tuple of shifts as a bitstring of length t * m.
Equations
Instances For
@[simp]
@[simp]