| ¬ # fillsgn(2, int2bytes(bytes2int(bytes))) ≠ # bytes, fillsgn(2, int2bytes(bytes2int(bytes))) = bytes, # int2bytes(bytes2int(bytes)) < # bytes, # int2bytes(bytes2int(bytes)) < # fillsgn(# bytes, int2bytes(bytes2int(bytes))), # int2bytes(bytes2int(bytes)) < 2, 2 < # bytes, # bytes ≤ # fillsgn(# bytes, int2bytes(bytes2int(bytes))), 2 < # fillsgn(# bytes, int2bytes(bytes2int(bytes))), # int2bytes(bytes2int(bytes)) + 1 < # bytes, # int2bytes(bytes2int(bytes)) + 1 < # fillsgn(# bytes, int2bytes(bytes2int(bytes))) ⊦ int2bytes(bytes2int(bytes)) = bytes, fillsgn(# bytes, int2bytes(bytes2int(bytes))) = [], bytes = [] |
Used simplifier rules: fillsgn-length-01: ⊦ # bytes < n → # fillsgn(n, bytes) = n;%int2bytes-empty: ⊦ int2bytes(i) ≠ [];% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ # bytes = 0 ↔ bytes = [];% ⊦ m < n → (m + n < 2 ↔ m = 0 ∧ n = 1);% ⊦ m +1 = m + 1;% ⊦ m < n ∧ m = n0 → n0 < n; (forward)% ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward)% ⊦ m < n ∧ n = n0 → m < n0; (forward)% ⊦ m + n = n + m;% ⊦ n < n0 ∧ n0 < n1 → n +1 < n1; (forward)% ⊦ m ≤ m;