| 31 ≤ # mklist(false, n) + # int2bits(128) ∧ # mklist(false, n) ≤ 31, 31 = n + # int2bits(~128), 32 = n + # int2bits(128), i2b(bits2uint(mklist(false, n) + firstn(31 - # mklist(false, n), int2bits(128)))) = i2b(bits2uint(firstn(31, (mklist(true, n) + true ') + int2bits(~128)))), # int2bits(128) ≤ 32, # int2bits(~128) ≤ 32 ⊦ |
i2b(bits2uint(mklist(false, n) + firstn(31 - n, int2bits(128)))) = i2b(bits2uint(firstn(31, (mklist(true, n) + true ') + int2bits(~128)))), 32 = n + # int2bits(128), 31 = n + # int2bits(~128), n ≤ 32, n ≤ 31, # int2bits(~128) ≤ 32, # int2bits(128) ≤ 32 ⊦
Used simplifier rules: 0 < n ⊦ (* n) ≤ m → m ≠ 0; (forward)% ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward)% ⊦ m + n = n + m;% ⊦ # mklist(boolvar, n) = n;