| 0 ≤ i ∧ int2bytes(i).first ≠ i2b(0) → (n + 1 ≤ # int2bytes(i) ↔ 2 ^ ((n→i(n + 1) - 1) * 8) ≤ i), 0 ≤ i ⊦ int2bytes(i).first = i2b(0), n < # int2bytes(i) ↔ ¬ i < 2 ^ (n→i(n) * 8) |
¬ # int2bytes(i) ≤ n ↔ 2 ^ (8 * n→i(n)) ≤ i, 0 ≤ i ⊦ int2bytes(i).first = i2b(0), n < # int2bytes(i) ↔ ¬ i < 2 ^ (n→i(n) * 8)
Used simplifier rules: ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + 0 = i;% ⊦ (* i) + i0 - (* j) = (i - j) + i0;% ⊦ n→i(m + n) = n→i(m) + n→i(n);% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ ¬ m < n ↔ n ≤ m;% ⊦ m + 1 ≤ n ↔ m < n;% ⊦ i ≤ j → (¬ ¬ j < i ↔ false);% ⊦ ¬ i ≤ j ↔ j < i;