| j < 0 → bits2int(int2bits(j)) = bits2int(int2bits(2 ^ n→i(# int2bits(~ j)) + j).rest), j < 0 ⊦ int2bits(j) = sgn(int2bits(2 ^ n→i(# int2bits(~ j)) + j).rest) |
⊦ bits ≠ [] ∧ bits0 ≠ [] → (bits2int(bits) = bits2int(bits0) ↔ sgn(bits) = sgn(bits0))
¬(int2bits(j) ≠ [] ∧ int2bits(2 ^ n→i(# int2bits(~ j)) + j).rest ≠ []), j < 0 → bits2int(int2bits(j)) = bits2int(int2bits(2 ^ n→i(# int2bits(~ j)) + j).rest), j < 0 ⊦ int2bits(j) = sgn(int2bits(2 ^ n→i(# int2bits(~ j)) + j).rest)
Used simplifier rules: int2bits-not-empty: ⊦ int2bits(j) ≠ [];%int2bits-sgn: ⊦ sgn(int2bits(i)) = int2bits(i);% ⊦ i + j = j + i;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i < j → (¬ ¬ j ≤ i ↔ false); Used terms: int2bits(2 ^ n→i(# int2bits(~ j)) + j).rest, int2bits(j)