Documentation

Complexitylib.Classes.AverageCase.AuxiliaryUnary.Internal

The auxiliary-unary distribution -- proof internals #

This layer proves the exact shape and finite counting laws of Hirahara's auxiliary-unary distribution.

theorem Complexity.AuxiliaryUnarySeed.prefix_probability_internal {m n : } (hn : n m) (x : Fin nBool) :
uniformProbability {bits : Fin mBool | ((bitBlocks hn) bits).1 = x} = 1 / 2 ^ n
theorem Complexity.AuxiliaryUnarySeed.prefix_event_probability_internal {m n : } (hn : n m) (event : Finset (Fin nBool)) :
uniformProbability {bits : Fin mBool | ((bitBlocks hn) bits).1 event} = eventProb event
theorem Complexity.AuxiliaryUnarySeed.split_prefix_event_probability_internal {m : } (event : (n : ) → Finset (Fin nBool)) :
uniformProbability {seed : Fin m × (Fin mBool) | ((bitBlocks ) seed.2).1 event seed.1} = 1 / m * n : Fin m, eventProb (event n)
theorem Complexity.AuxiliaryUnarySeed.split_prefix_probability_internal {m n : } (hn : n < m) (x : Fin nBool) :
uniformProbability {seed : AuxiliaryUnarySeed m | seed.1 = n ((bitBlocks ) seed.2).1 = x} = 1 / (m * 2 ^ n)
theorem Complexity.AuxiliaryUnarySeed.sample_eq_pair_iff_internal {m n : } (hn : n < m) (x : Fin nBool) (seed : AuxiliaryUnarySeed m) :
seed.sample = pair (List.ofFn x) (List.replicate (m - n) true) seed.1 = n ((bitBlocks ) seed.2).1 = x