| # int2bits(j0) = m + 1, n→i(m) ≤ i, 0 ≤ j0 ⊦ bits2int(sgn(bitsand(lastn(i→n(i), fillsgn(i→n(i), int2bits(j))), int2bits(j0)))) = bits2int(bitsand(int2bits(j), int2bits(j0))), i = 0 |
⊦ (# bits0)-1 ≤ n ∧ ¬ bits0.first ∧ n ≠ 0 ∧ bits ≠ [] ∧ bits0 ≠ [] → sgn(bitsand(lastn(n, fillsgn(n, bits)), bits0)) = sgn(bitsand(bits, bits0))
Used simplifier rules: ⊦ bits2int(sgn(bits)) = bits2int(bits);% ⊦ n -1 = n - 1;% ⊦ # bits = 0 ↔ bits = [];% ⊦ m < 1 ↔ m = 0;% ⊦ ¬ m ≤ n ↔ n < m;%n0 ≤ n ⊦ n - n0 ≤ m ↔ n ≤ m + n0;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m;% ⊦ int2bits(j).first ↔ j < 0;% ⊦ i ≤ j → (¬ ¬ j < i ↔ false);% ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ int2bits(j) ≠ [];% ⊦ m < n ∧ n = n0 → m < n0; (forward)% ⊦ m < n → n ≠ 0; (forward)% ⊦ m + 1 ≠ 0;% ⊦ m + n < m + n0 ↔ n < n0;% ⊦ i→n(i) < n → ¬ n→i(n) ≤ i; Used terms: int2bits(j0), int2bits(j), i→n(i)