| # int2bytes(i) ≥ 4, int2bytes(i) = by ' + by0 ' + by1 ' + by2 ', # int2bytes(i) ≤ 4, by ∈ int2bytes(i), by2 ∈ int2bytes(i) ⊦ # int2bytes(i) = 3, # int2bytes(i) = 2, i = b2i(i2b(i)), by = i2b(i >> 24) ∧ by0 = i2b(i >> 16) ∧ by1 = i2b(i >> 8) ∧ by2 = i2b(i) |
# int2bytes(i) = 4, int2bytes(i) = by ' + by0 ' + by1 ' + by2 ', by2 ∈ int2bytes(i), by ∈ int2bytes(i) ⊦ i = b2i(i2b(i)), by = i2b(i >> 24) ∧ by0 = i2b(i >> 16) ∧ by1 = i2b(i >> 8) ∧ by2 = i2b(i)
Used simplifier rules: not-zero: 0 < n ⊦ (* n) ≤ m → m ≠ 0; (forward) from specification nat%in-14: ⊦ by ' + bytes = bytes0 → by ∈ bytes0; (forward) from specification list[bytelist]%a: ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1; from specification list[bytelist]%in-15: ⊦ bytes + by ' = bytes0 → by ∈ bytes0; (forward) from specification list[bytelist]%anti: ⊦ m ≤ n → (n ≤ m ↔ m = n); from specification nat%ge: ⊦ n ≥ m ↔ m ≤ n; from specification nat