| fillsgn(4, int2bytes(i)) = by ' + by0 ' + by1 ' + by2 ', by ∈ fillsgn(4, int2bytes(i)), by2 ∈ fillsgn(4, int2bytes(i)) ⊦ # int2bytes(i) ≤ 4, by = i2b(i >> 24) ∧ by0 = i2b(i >> 16) ∧ by1 = i2b(i >> 8) ∧ by2 = i2b(i) |
fillsgn(4, int2bytes(i)) = by ' + by0 ' + by1 ' + by2 ', 4 < # int2bytes(i), by2 ∈ fillsgn(4, int2bytes(i)), by ∈ fillsgn(4, int2bytes(i)) ⊦ by = i2b(i >> 24) ∧ by0 = i2b(i >> 16) ∧ by1 = i2b(i >> 8) ∧ by2 = i2b(i)
Used simplifier rules: int2bytes-empty: ⊦ int2bytes(i) ≠ [];%l: ⊦ # bytes = 0 ↔ bytes = []; from specification list-data[bytelist]%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%lels-01: ⊦ ¬ m ≤ n ↔ n < m; from specification nat