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