| ¬ true ∈ bits, uint2bits(2 ^ n→i(# bits)) = false ' + true ' + bits, 0 ≤ 2 ^ n→i(# bits), 0 < 2 ^ n→i(# bits), ∀ i. ¬ i < 0 → 2 ^ n→i(# bits) ≠ 2 ^ i ⊦ sgn(true ' + bits) = true ' + true ' + bits, true ∈ bits |
0 ≤ 2 ^ n→i(# bits), 0 < 2 ^ n→i(# bits), ∀ i. ¬ i < 0 → 2 ^ n→i(# bits) ≠ 2 ^ i ⊦ sgn(true ' + bits) = true ' + true ' + bits, true ∈ bits
Used simplifier rules: uint2bits-2pot: 0 ≤ i ⊦ uint2bits(2 ^ i) = false ' + true ' + mklist(false, i→n(i));% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits + bits0 = bits + bits1 ↔ bits0 = bits1;% ⊦ ¬ true ∈ bits → mklist(false, # bits) = bits;% ⊦ i→n(n→i(n)) = n;% ⊦ 0 ≤ n→i(n);