| int2bits(b2i(by)) ≠ [], int2bytes(band(b2i(by0), 255)) = i2b(0) ' + by ' + bytes1 + by0 ', band(b2i(by0), 255) < 256, 0 ≤ b2i(by), 0 ≤ band(b2i(by0), 255), i2b(0) ∈ int2bytes(band(b2i(by0), 255)), by0 ∈ int2bytes(band(b2i(by0), 255)), ∀ by, bytes0. # bytes0 < #(bytes1 + by0 ') → int2bytes(bytes2int(i2b(0) ' + by ' + bytes0)) = i2b(0) ' + by ' + bytes0 ∧ 0 ≤ b2i(by) → false ⊦ byte2bits(i2b(0)) + fillsgn(8, int2bits(b2i(by))) + bytes2bits(bytes1) = [], true ∈ bytes2bits(bytes1), true ∈ int2bits(b2i(by)), true ∈ byte2bits(i2b(0)) |
b2i(by) = 0, int2bytes(band(b2i(by0), 255)) = i2b(0) ' + by ' + bytes1 + by0 ', by0 ∈ int2bytes(band(b2i(by0), 255)), i2b(0) ∈ int2bytes(band(b2i(by0), 255)), 0 ≤ band(b2i(by0), 255), band(b2i(by0), 255) < 256, ∀ by, bytes0. # bytes0 < #(bytes1 + by0 ') → int2bytes(bytes2int(i2b(0) ' + by ' + bytes0)) = i2b(0) ' + by ' + bytes0 ∧ 0 ≤ b2i(by) → false ⊦ true ∈ bytes2bits(bytes1), true ∈ byte2bits(i2b(0))
Used simplifier rules: ⊦ bits + boolvar ' + bits0 ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits + [] = bits;% ⊦ mklist(boolvar, 0) = [];%n ≠ 0 ⊦ mklist(false, (* n)) = false ' + mklist(false, n -1);% ⊦ 0 < n → fillsgn(n, boolvar ') = mklist(boolvar, n);% ⊦ int2bits(0) = false ';% ⊦ band(i, j) = band(j, i);% ⊦ true ∈ int2bits(j) ↔ j ≠ 0;% ⊦ int2bits(j) ≠ [];