The associated test is primitive recursive #
primrec_assocTest: the map from a tailored game description to the description of its
associated subgroup test (assocTest, Definition I:2086) is primitive recursive, so it composes
with the halting reduction. Each of its constructions is a composition of list operations with a
Primrec lemma in Mathlib; three are rewritten first into a form those lemmas cover:
allBits as an iterate (allBits_eq_iterate), List.dedup as a fold (dedup_eq_foldr), and the
enumeration of the fixed literals by List.range (zipIdx_map_eq).
Rewritings #
Deduplication as a fold: keep an element unless it occurs later.
Equations
- MIPRE.Tailored.Sofic.dedupStep a acc = if List.idxOf a acc < acc.length then acc else a :: acc
Instances For
Primitive recursion #
The arguments (g, x, y) of the per-pair constructions.
Equations
Instances For
genX, on (g, x, i).
wX g x applied to i, with (g, x) in context.
(g, x, y) of a pair whose first component is the arguments.
Equations
Instances For
List.idxOf on words, with the structural BEq of lists, is the one with the BEq of
decidable equality, which Mathlib's Primrec.list_idxOf is stated for.
The total weight, as a sum over lists.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The associated test is primitive recursive.