| bytes1 = by + bytes, 1 + # bytes1 < # int2bytes(bytes2int(i2b(0) ' + bytes1)), 0 ≤ b2i(by), ∀ bytes0. # bytes0 < #(i2b(0) + bytes1) → # bytes0 < # int2bytes(bytes2int(bytes0)) → bytes0 = [] ⊦ bytes1 = [] |
0 ≤ b2i(by), 2 + # bytes < # int2bytes(bytes2int(i2b(0) ' + by ' + bytes)), ∀ bytes0. # bytes0 < #(i2b(0) + by + bytes) → # bytes0 < # int2bytes(bytes2int(bytes0)) → bytes0 = [] ⊦
Used simplifier rules: int2bytes-empty: ⊦ int2bytes(i) ≠ [];% ⊦ # bytes = 0 ↔ bytes = [];% ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward)% ⊦ m < n → n ≠ 0; (forward)% ⊦ # by ' = 0 +1;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ by ' + bytes ≠ [];% ⊦ by + bytes = by ' + bytes;