Documentation

Complexitylib.Metacomplexity.MCSP.AntiChecker.GoodString.Internal

Good-string combinatorics -- proof internals #

theorem Complexity.AntiChecker.survivorCodeOutput_eq_target_iff_internal {arity : } (target : BitString arityBool) (threshold : ) (inputs : List (BitString arity)) (code : (SurvivorCode target threshold inputs)) (input : BitString arity) :
survivorCodeOutput target threshold inputs code input = target input CodeAgreesAt target (↑code) input
theorem Complexity.AntiChecker.card_survivorCode_internal {arity : } (target : BitString arityBool) (threshold : ) (inputs : List (BitString arity)) :
Fintype.card (SurvivorCode target threshold inputs) = candidateSurvivorCount target threshold inputs
theorem Complexity.AntiChecker.isSurvivorTupleCaughtAt_iff_agreementCount_le_internal {arity : } (target : BitString arityBool) (threshold : ) (inputs : List (BitString arity)) (input : BitString arity) (tuple : Fin arity(SurvivorCode target threshold inputs)) :
IsSurvivorTupleCaughtAt target threshold inputs input tuple survivorTupleAgreementCount target threshold inputs input tuple arity / 2
theorem Complexity.AntiChecker.survivorTupleMajority_eq_target_of_not_caught_internal {arity : } (target : BitString arityBool) (threshold : ) (inputs : List (BitString arity)) (input : BitString arity) (tuple : Fin arity(SurvivorCode target threshold inputs)) (hnotCaught : ¬IsSurvivorTupleCaughtAt target threshold inputs input tuple) :
(majority fun (i : Fin arity) => survivorCodeOutput target threshold inputs (tuple i) input) = target input
theorem Complexity.AntiChecker.everySurvivorTupleCaught_of_no_majorityComputes_internal {arity : } (target : BitString arityBool) (threshold : ) (inputs : List (BitString arity)) (hnoMajority : ∀ (tuple : Fin arity(SurvivorCode target threshold inputs)), ¬SurvivorTupleMajorityComputes target threshold inputs tuple) :
EverySurvivorTupleCaught target threshold inputs
theorem Complexity.AntiChecker.card_caughtSurvivorTuples_internal {arity : } (target : BitString arityBool) (threshold : ) (inputs : List (BitString arity)) (input : BitString arity) :
(caughtSurvivorTuples target threshold inputs input).card = disagreementsFinset.Icc (arity - arity / 2) arity, arity.choose disagreements * (disagreeingSurvivors target threshold inputs input).card ^ disagreements * (candidateSurvivorCount target threshold inputs - (disagreeingSurvivors target threshold inputs input).card) ^ (arity - disagreements)
theorem Complexity.AntiChecker.card_disagreeingSurvivors_add_next_internal {arity : } (target : BitString arityBool) (threshold : ) (inputs : List (BitString arity)) (input : BitString arity) :
(disagreeingSurvivors target threshold inputs input).card + candidateSurvivorCount target threshold (input :: inputs) = candidateSurvivorCount target threshold inputs
theorem Complexity.AntiChecker.isShrinkExtension_iff_survivorCount_le_mul_disagreements_internal {arity denominator threshold : } (hdenominator : 0 < denominator) (target : BitString arityBool) (inputs : List (BitString arity)) (input : BitString arity) :
IsShrinkExtension denominator target threshold inputs input candidateSurvivorCount target threshold inputs denominator * (disagreeingSurvivors target threshold inputs input).card
theorem Complexity.AntiChecker.exists_input_many_caughtSurvivorTuples_internal {arity : } (target : BitString arityBool) (threshold : ) (inputs : List (BitString arity)) (hall : EverySurvivorTupleCaught target threshold inputs) :
∃ (input : BitString arity), candidateSurvivorCount target threshold inputs ^ arity 2 ^ arity * (caughtSurvivorTuples target threshold inputs input).card