| sgn(bitsinvert(uint2bits(~(j / 2))) + true ').rest = [], j < 0, j < ~1 ⊦ j = ~1, j = 0, j % 2 = 0, true ∈ uint2bits(~(j / 2)) |
⊦ ¬ false ∈ bits ∧ bits ≠ [] → sgn(bits) = true '
¬ false ∈ bitsinvert(uint2bits(~(j / 2))) + true ' ∧ bitsinvert(uint2bits(~(j / 2))) + true ' ≠ [], true '.rest = [], j < 0, j < ~1 ⊦ j = ~1, j = 0, j % 2 = 0, true ∈ uint2bits(~(j / 2))
Used simplifier rules: uint2bits-empty: 0 ≤ i ⊦ uint2bits(i) ≠ [];% ⊦ boolvar ∈ bits + bits0 ↔ ¬ ¬(boolvar ∈ bits ∨ boolvar ∈ bits0);% ⊦ false ∈ bitsinvert(bits) ↔ true ∈ bits;% ⊦ boolvar ∈ boolvar0 ' ↔ boolvar ↔ boolvar0;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ bitsinvert(bits) = [] ↔ bits = [];%j0 ≠ 0, j < j0 ⊦ i < (* j) → i < (* j0);% ⊦ 0 < j → (i / j ≤ 0 ↔ i < j);% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + 0 = i;% ⊦ i ≤ ~ j ↔ i + j ≤ 0; Used terms: bitsinvert(uint2bits(~(j / 2))) + true '