Anti-checker shrink rounds #
One shrink round bounds the next survivor count by a fixed fraction of the current count. This module composes a trace of such rounds into an exact natural-number power inequality. If that upper bound is smaller than one after rescaling, the final survivor count is zero and the trace is an anti-checker. The halving submodule gives a convenient blockwise stopping rule, and the selection submodule constructs traces by approximate minimization.
The empty list is a valid shrink trace.
Consing an input extends a shrink trace exactly when it shrinks the prefix represented by the tail.
Composing every round in a shrink trace gives the exact scaled survivor bound with one factor per selected input.
If the composed upper bound is smaller than one after rescaling, no canonical candidate survives the trace.
A shrink trace whose composed bound is below one is an anti-checker.