| m0 + 1 ≠ 0, i→n(j) = m0 + 1, # int2bits((i - 1) / 2) ≤ m, i < ~1, # int2bits(i) ≤ m + 1, i < 0, 1 < j, 0 < j ⊦ bits2int(firstn(m + 1, (false + mklist(false, m0 + 1 - 1)) + fillsgn(m + 1, int2bits(i)))) = bits2int(firstn(m, mklist(false, m0) + fillsgn(m, int2bits((i - 1) / 2)))), j = 0 |
i→n(j) = m0 + 1, # int2bits((i - 1) / 2) ≤ m, i < ~1, # int2bits(i) ≤ m + 1, i < 0, 1 < j, 0 < j ⊦ j = 0, bits2uint(firstn(m, mklist(false, m0) + fillsgn(m + 1, int2bits(i)))) = bits2int(firstn(m, mklist(false, m0) + fillsgn(m, int2bits((i - 1) / 2))))
Used simplifier rules: ⊦ m + 1 ≠ 0;% ⊦ bits2int(false ' + bits) = bits2uint(bits);% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ firstn(n + 1, boolvar ' + bits) = boolvar + firstn(n, bits);% ⊦ boolvar + bits = boolvar ' + bits;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ 0 + m = m;% ⊦ n ≤ m → m + n0 - n = (m - n) + n0;