| bits = [], # bits = i→n(j), int2bits(i) = bits0 + bits, 0 ≤ j, 0 ≤ i, 2 ^ j * 2 < i, bits ≠ [] → bitsxor(bits0 + bits, (false ' + true ') + mklist(false, i→n(j))) = bitsxor(bits0, false ' + true ') + bitsxor(bits, mklist(false, i→n(j))) ⊦ bits0 = [], (int2bits(bits2int(bitsxor(bits0 + bits, false ' + true ' + mklist(false, i→n(j)))))[# bits0 - 1] ↔ ¬ bits0.last) ∧ int2bits(bits2int(bitsxor(bits0 + bits, false ' + true ' + mklist(false, i→n(j)))))[# bits0 - 1, bits0.last] = bits0 + bits |
0 < i, 2 < i, 0 ≤ i ⊦ (int2bits(bits2int(bitsxor(int2bits(i), false ' + true ')))[# int2bits(i) - 1] ↔ ¬ int2bits(i).last) ∧ int2bits(bits2int(bitsxor(int2bits(i), false ' + true ')))[# int2bits(i) - 1, int2bits(i).last] = int2bits(i)
Used simplifier rules: i0 ≠ 0, i0 < i ⊦ (* i) < j → (* i0) < j;% ⊦ i < j ∧ 0 < i → 0 < j ∧ 1 < j; (forward)% ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward)% ⊦ mklist(boolvar, 0) = [];% ⊦ int2bits(j) ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits + [] = bits;% ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ # [] = 0;