| sublist(0, # int2bits((i - 1) / 2), mklist(true, i→n(j) - 1) + int2bits((i - 1) / 2)) ≠ [] ∧ ¬ (¬ sublist(0, # int2bits((i - 1) / 2), mklist(true, i→n(j) - 1) + int2bits((i - 1) / 2)).first) ∈ true ', 0 + # int2bits((i - 1) / 2) ≤ #(mklist(true, i→n(j) - 1) + int2bits((i - 1) / 2)), i < 0, j < 32, 0 < j ⊦ j = 0, i = ~1, bits2int(sublist(0, # int2bits((i - 1) / 2), mklist(true, i→n(j) - 1) + int2bits((i - 1) / 2))) = bits2int(sublist(0, # int2bits((i - 1) / 2), mklist(true, i→n(j - 1)) + int2bits((i - 1) / 2))) |
i < 0, j < 32, 0 < j, sublist(0, # int2bits((i - 1) / 2), mklist(true, i→n(j) - 1) + int2bits((i - 1) / 2)).first ⊦ j = 0, i = ~1, bits2int(sublist(0, # int2bits((i - 1) / 2), mklist(true, i→n(j) - 1) + int2bits((i - 1) / 2))) = bits2int(sublist(0, # int2bits((i - 1) / 2), mklist(true, i→n(j - 1)) + int2bits((i - 1) / 2)))
Used simplifier rules: ⊦ boolvar ∈ boolvar0 ' ↔ boolvar ↔ boolvar0;% ⊦ m ≤ m + n;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ # mklist(boolvar, n) = n;% ⊦ #(bits + bits0) = # bits + # bits0;% ⊦ 0 + m = m;% ⊦ int2bits(j) ≠ [];% ⊦ # bits = 0 ↔ bits = [];% ⊦ sublist(0, n, bits) = [] ↔ n = 0;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;