| uint2bits(i) = false ' + bits, 0 ≤ i, false ∈ uint2bits(i) ⊦ # uint2bits(i) = 1, bits.first |
Used simplifier rules: uint2bits-zero-01: 0 ≤ i ⊦ uint2bits(i) = false ' ↔ i = 0;%uint2bits-zero: ⊦ uint2bits(0) = false ';%uint2bits-false: ⊦ 0 ≤ i → uint2bits(i) ≠ false ' + false ' + bits;% ⊦ boolvar + bits = boolvar ' + bits;% ⊦ bits + [] = bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j;% ⊦ # boolvar ' = 0 +1;%⊦ bits ≠ [] → ( (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0); (elim) Used terms: bits, boolvar, bits0