| # int2bits((i - 1) / 2) ≤ m, i < ~1, # int2bits(i) ≤ m + 1, i < 0, 1 < j, 0 < j ⊦ bits2int(firstn(m + 1, mklist(false, i→n(j)) + fillsgn(m + 1, int2bits(i)))) = bits2int(firstn(m, mklist(false, i→n(j) - 1) + fillsgn(m, int2bits((i - 1) / 2)))) |
i→n(j) = m0 + 1 ∧ i→n(j) ≠ 0, # int2bits((i - 1) / 2) ≤ m, i < ~1, # int2bits(i) ≤ m + 1, i < 0, 1 < j, 0 < j ⊦ bits2int(firstn(m + 1, mklist(false, i→n(j)) + fillsgn(m + 1, int2bits(i)))) = bits2int(firstn(m, mklist(false, m0) + fillsgn(m, int2bits((i - 1) / 2))))
Used simplifier rules: ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ mklist(boolvar, 0) = [];% ⊦ [] + bits = bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;%n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: i→n(j), m0