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