Powers with logarithmic exponents #
The power b ^ ⌈log_b n⌉ overshoots n by less than a factor b (Nat.pow_clog_le_mul), so
m ^ ⌈log_b n⌉, which is at most (b ^ ⌈log_b m⌉) ^ ⌈log_b n⌉ = (b ^ ⌈log_b n⌉) ^ ⌈log_b m⌉, is
at most b ^ ⌈log_b m⌉ * n ^ ⌈log_b m⌉ (Nat.pow_clog_le_pow_clog_mul_pow_clog): a factor m
applied ⌈log_b n⌉ times is polynomial in n. This is how the size of an iterated construction
stays polynomial after logarithmically many rounds. Similarly 2 ^ (⌊log₂ n⌋ + 1) and
2 ^ ⌈log₂ n⌉ are at most 2 (n + 1) (Nat.two_pow_log2_succ_le, Nat.two_pow_clog_two_le).
Main results #
Nat.pow_clog_le_mul:b ^ ⌈log_b n⌉ ≤ b * nforn ≠ 0.Nat.pow_clog_le_pow_clog_mul_pow_clog:m ^ ⌈log_b n⌉ ≤ b ^ ⌈log_b m⌉ * n ^ ⌈log_b m⌉forn ≠ 0.Nat.two_pow_log2_succ_le:2 ^ (⌊log₂ n⌋ + 1) ≤ 2 (n + 1).Nat.two_pow_clog_two_le:2 ^ ⌈log₂ n⌉ ≤ 2 (n + 1), also forn = 0.