| 1 = # int2bits(j), i0 < 0, bits2int(bitsand(true ', int2bits(j))) < ~2, i0 ≤ ~2, j ≤ 0, bits2int(bitsand(true ', int2bits(j))) < i0, bits2int(bitsand(true ', int2bits(j))) < 0, ∀ i0, j, i1. i→n(i1) < i→n(~1) → # int2bits(i1) = # int2bits(j) ∧ bits2int(bitsand(int2bits(i1), int2bits(j))) < i0 ∧ i1 ≤ 0 ∧ j ≤ 0 ∧ i0 + 2 ^ n→i(# int2bits(j)) ≤ 0 → false ⊦ |
⊦ bits ≠ [] → bitsand(true ', bits) = bits
int2bits(j) ≠ [], 1 = # int2bits(j), i0 < 0, bits2int(int2bits(j)) < ~2, i0 ≤ ~2, j ≤ 0, bits2int(int2bits(j)) < i0, bits2int(int2bits(j)) < 0, ∀ i0, j, i1. i→n(i1) < i→n(~1) → # int2bits(i1) = # int2bits(j) ∧ bits2int(bitsand(int2bits(i1), int2bits(j))) < i0 ∧ i1 ≤ 0 ∧ j ≤ 0 ∧ i0 + 2 ^ n→i(# int2bits(j)) ≤ 0 → false ⊦
Used simplifier rules: ⊦ int2bits(j) ≠ []; Used terms: int2bits(j)