| b2i(by0) < 0, 2 + # bytes ≤ # int2bytes(bytes2int(by0 ' + bytes)), ∀ bytes0. # bytes0 < #(i2b(~1) + by0 + bytes) → true → bytes0 = [] ∨ fix(# bytes0, int2bytes(bytes2int(bytes0))) = bytes0 ⊦ fix(2 + # bytes, int2bytes(bytes2int(by0 ' + bytes))) = i2b(~1) ' + by0 ' + bytes |
⊦ bytes ≠ [] → # int2bytes(bytes2int(bytes)) ≤ # bytes
Used simplifier rules: ⊦ ¬ bytes + bytes0 ≠ [] ↔ bytes = [] ∧ bytes0 = [];% ⊦ by ' ≠ [];% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ # by ' = 0 +1;% ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward)%n0 < n ⊦ m + (* n) ≤ m0 + (* n0) ↔ m + (n - n0) ≤ m0;% ⊦ m + n ≤ m ↔ n = 0;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m; Used terms: by0 ' + bytes