| mklist(false, i→n(i0)) + false ' = false ' + bits, 0 ≤ i0 ⊦ bits2uint(firstn(1, (mklist(false, i→n(i0)) + false ' + false ' + true ').rest)) = 0 |
mklist(false, i→n(i0)) + false ' + false ' + true ' = boolvar + bits0 ∧ mklist(false, i→n(i0)) + false ' + false ' + true ' ≠ [], mklist(false, i→n(i0)) + false ' = false ' + bits, 0 ≤ i0 ⊦ bits2uint(firstn(1, bits0)) = 0
Used simplifier rules: ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ mklist(boolvar, m) = [] ↔ m = 0;% ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ boolvar ' ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;%bits ≠ [] ⊦ (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0; (elim) Used terms: mklist(false, i→n(i0)) + false ' + false ' + true ', boolvar, bits0