| 1 = # int2bytes(bytes2int(bytes)), # bytes = 1, ∀ bytes0. # bytes0 < 1 → true → # bytes0 = # int2bytes(bytes2int(bytes0)) → bytes0 = int2bytes(bytes2int(bytes0)) ⊦ bytes = bytes.first ', ∃ by. bytes = by ', bytes = int2bytes(bytes2int(bytes)), bytes = [] |
Used simplifier rules: ⊦ by + bytes = by ' + bytes;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ # by ' = 0 +1;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ 1 = m + 1 ↔ m = 0;% ⊦ # bytes = 0 ↔ bytes = [];% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m;% ⊦ by ' = by0 ' + bytes ↔ by = by0 ∧ bytes = [];%bytes ≠ [] ⊦ by = bytes.first ∧ bytes0 = bytes.rest ↔ bytes = by + bytes0; (elim) Used terms: bytes, by0, bytes1