| j < 2 ^ (n→i(n) + n→i(# int2bits(j0))), j < n→i(n) + n→i(# int2bits(j0)), 0 < 2 ^ (n→i(n) + n→i(# int2bits(j0))), # int2bits(j0) < i→n(n→i(n) + n→i(# int2bits(j0))), j < 0, j + 1 < n→i(n) + n→i(# int2bits(j0)), 0 ≤ j0, j < j0, j + 1 < 2 ^ (n→i(n) + n→i(# int2bits(j0))), (¬ mklist(false, i→n(n→i(n) + n→i(# int2bits(j0)))).first) ∈ bitsinvert(uint2bits(~ j)) +1, j0 < 2 ^ (n→i(n) + n→i(# int2bits(j0))), 0 < n→i(n) + n→i(# int2bits(j0)) ⊦ i→n(n→i(n) + n→i(# int2bits(j0))) = # int2bits(j0), (j + 1) * 2 ^ n→i(n) * 2 ^ n→i(# int2bits(j0)) = 2 ^ n→i(n) * 2 ^ n→i(# int2bits(j0)) + 2 ^ (n→i(n) + n→i(# int2bits(j0))) * j, n→i(n) + n→i(# int2bits(j0)) = 0, bitsinvert(int2bits(j)) + mklist(true, i→n(n→i(n) + n→i(# int2bits(j0)))) = [], mklist(true, n) + bitsinvert(int2bits(j0)) = [], n = 0 |
⊦ 0 ≤ j ∧ 0 ≤ j0 → i ^ (j + j0) = i ^ j * i ^ j0
Used simplifier rules: ⊦ i * j + i * j0 = i * (j + j0);% ⊦ i * j + i = i * (j + 1);% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i * j = j * i;% ⊦ 0 < i → (i * j = i * j0 ↔ j = j0);% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i;% ⊦ 0 ≤ n→i(n); Used terms: n→i(# int2bits(j0)), n→i(n), 2