| int2bytes(i) = by + bytes ∧ int2bytes(i) ≠ [], bytes2int(i2b(0) ' + bytes.first ' + bytes.rest) < 2 ^ ((n→i(# bytes.rest) + 1) * 8), by = i2b(0), 0 ≤ i ⊦ i2b(0) ' + bytes.first ' + bytes.rest = int2bytes(i), # int2bytes(i) = n ↔ ¬ i < 2 ^ ((n→i(n) - 1) * 8 - 1) ∧ ¬ 2 ^ ((n→i(n) - 1) * 8) ≤ i ∧ n ≠ 0 |
int2bytes(i) = i2b(0) ' + bytes, bytes2int(i2b(0) ' + bytes.first ' + bytes.rest) < 2 ^ ((n→i(# bytes.rest) + 1) * 8), 0 ≤ i, i2b(0) ∈ int2bytes(i) ⊦ i2b(0) ' + bytes.first ' + bytes.rest = int2bytes(i), # int2bytes(i) = n ↔ ¬ i < 2 ^ ((n→i(n) - 1) * 8 - 1) ∧ ¬ 2 ^ ((n→i(n) - 1) * 8) ≤ i ∧ n ≠ 0
Used simplifier rules: int2bytes-empty: ⊦ int2bytes(i) ≠ [];% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ by ' + bytes = bytes0 → by ∈ bytes0; (forward)% ⊦ by + bytes = by ' + bytes;