| sublist(0, n, int2bits(i)) = boolvar + bits ∧ sublist(0, n, int2bits(i)) ≠ [], # int2bits(i) = n + i→n(band(j, 31)), i→n(band(j, 31)) < # int2bits(i) ⊦ bits2int(mklist(¬ 0 ≤ i, i→n(band(j, 31))) + sublist(0, n, int2bits(i))) = bits2int(sublist(0, n, int2bits(i))), n = 0, boolvar ↔ ¬ 0 ≤ i |
# int2bits(i) = n + i→n(band(j, 31)), sublist(0, n, int2bits(i)) = boolvar ' + bits, i→n(band(j, 31)) < # int2bits(i), boolvar ∈ sublist(0, n, int2bits(i)) ⊦ bits2int(mklist(¬ 0 ≤ i, i→n(band(j, 31))) + sublist(0, n, int2bits(i))) = bits2int(sublist(0, n, int2bits(i))), n = 0, boolvar ↔ ¬ 0 ≤ i
Used simplifier rules: ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' + bits = bits0 → boolvar ∈ bits0; (forward)% ⊦ sublist(0, n, bits) = [] ↔ n = 0;% ⊦ boolvar + bits = boolvar ' + bits;