| 1 < # int2bytes(i) ∧ # int2bytes(i) ≤ 4, # int2bytes(i) = 3, fillsgn(4 -1, int2bytes(i >> 8)) + i2b(i) = by ' + by0 ' + by1 ' + by2 ', # int2bytes(i) ≤ 4, by ∈ fillsgn(4 -1, int2bytes(i >> 8)) + i2b(i), by2 ∈ fillsgn(4 -1, int2bytes(i >> 8)) + i2b(i) ⊦ # int2bytes(i) = 2, i = b2i(i2b(i)), by = i2b(i >> 24) ∧ by0 = i2b(i >> 16) ∧ by1 = i2b(i >> 8) ∧ by2 = i2b(i) |
# int2bytes(i) = 3, fillsgn(3, int2bytes(i >> 8)) = by ' + by0 ' + by1 ' ⊦ i = b2i(i2b(i)), by = i2b(i >> 24) ∧ by0 = i2b(i >> 16) ∧ by1 = i2b(i >> 8)
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);%not-zero: 0 < n ⊦ (* n) ≤ m → m ≠ 0; (forward) from specification nat%in-14: ⊦ by ' + bytes = bytes0 → by ∈ bytes0; (forward) from specification list[bytelist]%in-15: ⊦ bytes + by ' = bytes0 → by ∈ bytes0; (forward) from specification list[bytelist]%in-17: ⊦ by ∈ by0 ' ↔ by = by0; from specification list[bytelist]%in-append: ⊦ by ∈ bytes + bytes0 ↔ ¬ ¬(by ∈ bytes ∨ by ∈ bytes0); from specification list[bytelist]%l: ⊦ # bytes = 0 ↔ bytes = []; from specification list-data[bytelist]%one: ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1); from specification nat-basic1%a: ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1; from specification list[bytelist]%app-06: ⊦ bytes + by ' = bytes0 + by0 ' ↔ bytes = bytes0 ∧ by = by0; from specification list[bytelist]%Last: ⊦ bytes + by = bytes + by '; from specification list[bytelist]