Halving bounds for anti-checker shrink rounds -- proof internals #
theorem
Complexity.AntiChecker.IsShrinkTrace.candidateSurvivorCount_eq_zero_of_initial_lt_two_pow_internal
{arity denominator threshold blocks : ℕ}
{target : BitString arity → Bool}
{inputs : List (BitString arity)}
(htrace : IsShrinkTrace denominator target threshold inputs)
(hdenominator : 2 ≤ denominator)
(hlength : inputs.length = denominator * blocks)
(hinitial : candidateSurvivorCount target threshold [] < 2 ^ blocks)
:
theorem
Complexity.AntiChecker.IsShrinkTrace.isFor_of_initial_lt_two_pow_internal
{arity denominator threshold blocks : ℕ}
[NeZero arity]
{target : BitString arity → Bool}
{inputs : List (BitString arity)}
(htrace : IsShrinkTrace denominator target threshold inputs)
(hdenominator : 2 ≤ denominator)
(hlength : inputs.length = denominator * blocks)
(hinitial : candidateSurvivorCount target threshold [] < 2 ^ blocks)
:
IsFor target threshold inputs