| ∃ bits. int2bits(j) = true ' + false ' + bits, j < ~1, j < 0 ⊦ bits2int(int2bits(j).rest) = j + 2 ^ (n→i(# int2bits(j)) - 1) |
int2bits(j) = true ' + false ' + bits, j < 0, j < ~1 ⊦ bits2int(int2bits(j).rest) = j + 2 ^ (n→i(# int2bits(j)) - 1), j = 0
Used simplifier rules: int2bits-truein: ⊦ true ∈ int2bits(j) ↔ j ≠ 0;% ⊦ bits = bits0 + boolvar ' + bits1 → boolvar ∈ bits;% ⊦ bits = bits0 + boolvar ' + bits1 → boolvar ∈ bits; (forward)% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' + bits = bits0 → boolvar ∈ bits0; (forward)