| true ∈ (boolvar ' +1 + bitsinvert(bits0)).rest ⊦ (boolvar ' +1 + bitsinvert(bits0)).first ↔ boolvar, false ∈ bits0 |
boolvar ' +1 + bitsinvert(bits0) = boolvar0 + bits ∧ boolvar ' +1 + bitsinvert(bits0) ≠ [], true ∈ bits ⊦ boolvar0 ↔ boolvar, false ∈ bits0
Used simplifier rules: succ-empty-01: ⊦ ¬ bits +1 ≠ [] ↔ false;%inv-empty: ⊦ bitsinvert(bits) = [] ↔ bits = [];% ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;%bits ≠ [] ⊦ (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0; (elim) Used terms: boolvar ' +1 + bitsinvert(bits0), boolvar0, bits