| ¬ i→n(band(j, 31)) ≠ 0, 32 = n0 + i→n(band(j, 31)), # int2bits(i) ≤ 32, band(j, 31) ≤ 32 ⊦ bits2int(sublist(0, # int2bits(i), mklist(¬ 0 ≤ i, i→n(band(j, 31))) + int2bits(i))) = bits2int(mklist(¬ 0 ≤ i, i→n(band(j, 31))) + sublist(0, n0, fillsgn(32, int2bits(i)))) |
band(j, 31) = 0, # int2bits(i) ≤ 32 ⊦ i = bits2int(sublist(0, 32, fillsgn(32, int2bits(i))))
Used simplifier rules: int2int-inj: ⊦ bits2int(int2bits(i)) = i; from specification int2bits%sub-zero: ⊦ sublist(0, # bits, bits) = bits; from specification list-del[bitlista]%a: ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1; from specification list[bitlista]%Nil: ⊦ [] + bits = bits; from specification list[bitlista]%mk-zero: ⊦ mklist(boolvar, 0) = []; from specification list-last[bitlista]%c: ⊦ m + n = n + m; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%ax-08: ⊦ n + 0 = n; from specification nat-basic2%forward-le-01: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward) from specification int-abs%abs-zero: ⊦ i→n(i) = 0 ↔ i = 0; from specification intnat