Function vstd::arithmetic::power::lemma_pull_out_pows
source · pub broadcast proof fn lemma_pull_out_pows(b: nat, x: nat, y: nat, z: nat)
Expand description
requires
b > 0,
ensures0 <= x * y,
0 <= y * z,
#[trigger] pow(pow(b as int, x * y), z) == pow(pow(b as int, x), y * z),
Proof that (b^(xy))^z = (b^x)^(yz)
, given that x * y
and y * z
are nonnegative and b
is positive