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