| int2bits(i) ≠ [] ∧ # int2bits(i) < # int2bits(i) + m + 1, ∀ i0. mklist(i0 < 0, m) + int2bits(i0) = fillsgn(m + # int2bits(i0), int2bits(i0)) ⊦ ((¬ 0 ≤ i)' + mklist(¬ 0 ≤ i, m)) + int2bits(i) = int2bits(i).first ' + fillsgn((# int2bits(i) + m + 1)-1, int2bits(i)) |
∀ i0. mklist(i0 < 0, m) + int2bits(i0) = fillsgn(m + # int2bits(i0), int2bits(i0)) ⊦ mklist(¬ 0 ≤ i, m) + int2bits(i) = fillsgn(# int2bits(i) + m, int2bits(i))
Used simplifier rules: int2bits-first-02: ⊦ int2bits(j).first ↔ j < 0;%int2bits-not-empty: ⊦ int2bits(j) ≠ [];% ⊦ ¬ m + n < m;% ⊦ m < n + 1 ↔ ¬ n < m;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits + bits0 = bits + bits1 ↔ bits0 = bits1;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ (m + 1)-1 = m;% ⊦ ¬ i < j ↔ j ≤ i;