| i→n(i) ≠ 0, 0 < j, 0 ≤ j, 0 < i, ∀ j0, i. i→n(j0) < i→n(j) → 0 ≤ j0 ∧ 0 ≤ j0 ∧ 0 ≤ i → bits2int(bitsand(false ' + mklist(true, i→n(i)), uint2bits(j0))) = j0 % 2 ^ i ⊦ j = 1, i = 0, bits2int(bitsand((false ' + mklist(true, i→n(i))).butlast, uint2bits(j / 2)) + (j % 2 = 1 ∧ true)') = j % 2 ^ i |
0 < j, 0 ≤ j, 0 < i, ∀ j0, i. i→n(j0) < i→n(j) → 0 ≤ j0 ∧ 0 ≤ j0 ∧ 0 ≤ i → bits2int(bitsand(false ' + mklist(true, i→n(i)), uint2bits(j0))) = j0 % 2 ^ i ⊦ j = 1, i = 0, bits2int(bitsand(false ' + mklist(true, i→n(i) - 1), uint2bits(j / 2)) + (j % 2 = 1)') = j % 2 ^ i
Used simplifier rules: ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;%⊦ m ≠ 0 → (bits + mklist(boolvar, m)).butlast = bits + mklist(boolvar, m - 1);